如何在 Notepad++ 中替换一个字符串中的多个单词

如何在 Notepad++ 中替换一个字符串中的多个单词

我需要在一个字符串中替换几个不同的特定单词/值,例如:

1)2)3)A.B.C., ETC。

它们都可以被同一件事物所取代——没有任何东西,即在替换框中没有输入任何值。

但是我需要在不使用 Notepad++ 删除“单词”的任何单个方面的情况下执行此操作。例如,它应该删除1)2)A.B.而不删除任何单个值,如12(单独的数字)、)(单独的括号)、AB(单独的字母)或.(单独的句点)。

到目前为止,我尝试将其输入到查找框中:

(1.)|(2.)|(3.)|(A.)|(B.)|(C.)

但它删除了每一个数字12或者3每一个句号和每一个大写字母AB或者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)"

相关内容