我需要在一个字符串中替换几个不同的特定单词/值,例如:
1)
,2)
,3)
,A.
,B.
,C.
, ETC。
它们都可以被同一件事物所取代——没有任何东西,即在替换框中没有输入任何值。
但是我需要在不使用 Notepad++ 删除“单词”的任何单个方面的情况下执行此操作。例如,它应该删除1)
、2)
、A.
,B.
而不删除任何单个值,如1
、2
(单独的数字)、)
(单独的括号)、A
、B
(单独的字母)或.
(单独的句点)。
到目前为止,我尝试将其输入到查找框中:
(1.)|(2.)|(3.)|(A.)|(B.)|(C.)
但它删除了每一个数字1
,2
或者3
每一个句号和每一个大写字母A
,B
或者C
。
答案1
这个正则表达式应该适合你:
([1-3]|[A-C])(\.|\))
您基本上忽略了这样一个事实:正则表达式中需要转义特殊字符,例如.
(任意字符) 和)
(组结尾)。您还可以使用[A-C]
语法对字符进行分组,这A
意味着C
。
如果您需要以1
大写字符开头的所有数字(典型的简单枚举),那么您可以替换为:
([1-9]\d*|[A-Z])(\.|\))
其中\d*
只是 的简写[0-9]*
,因此是可选的多位数字,后面跟着一个不是0
( [1-9]
) 的数字。
根据评论使用罗马数字(不一定有效):
([1-9]\d*|[A-Z]|[CDILMVX]+)(\.|\))
所以基本上只是重复字符组中的有效字符。如果你需要检查有效字符,那么搜索就是你的好帮手,这是一个随机的例子复杂正则表达式您需要添加作为替代方案。
答案2
尝试以下正则表达式:
^(\d+|[A-Z])\)
这个正则表达式可以分解如下:
^: This asserts the position at the start of a line.
(: This opens a capturing group.
\d+: This matches one or more digits (0-9).
|: This is the alternation operator, working like an OR in regular expressions.
[A-Z]: This matches a single uppercase letter from A to Z.
): This closes the capturing group.
\) : This matches a closing parenthesis.
因此,此正则表达式将匹配以一个或多个数字(0-9)或单个大写字母(AZ)开头,后跟右括号的任何字符串。匹配字符串的一些示例如下:
"1)"
"23)"
"A)"
"Z)"