Notepad ++中括号中的正则表达式[重复]
Posted
技术标签:
【中文标题】Notepad ++中括号中的正则表达式[重复]【英文标题】:enclosing regular expression in parentheses in Notepad++ [duplicate] 【发布时间】:2022-01-17 02:29:56 【问题描述】:所以我在 excel 中有一个很大的项目列表。我将它们复制到 Notepad++,因为它内置了正则表达式。
可能是 AuAC21-XTS02L 或 BgUX20-C02S 等。基本上我想用 Au(AC21-XTS02)L 和 Bg(UX20-C02)S 替换这两个。
使用正则表达式 \D\D\d\d-(\D)1,3\d\di 可以完美地找到我想用括号括起来的文本部分,但现在我不知道如何.
我尝试使用 (\D\D\d\d-(\D)1,3\d\d) 作为替代品,但后来我收到类似 Au(DDdd-D1,3dd )L.
任何帮助将不胜感激。
【问题讨论】:
请edit your question 添加示例文本文件和预期结果。 匹配任何你有的模式,用\($&\)
替换它并用括号括起来。
【参考方案1】:
您可以将整个匹配的字符串存储在一个组中,然后将其替换为($1)
。请注意,根据您的 Notepad++ 版本,您可能需要使用 \
而不是 $
来引用匹配组(即替换字符串将是 (\1)
)
看看这个 Regex101 sn-p:https://regex101.com/r/0e1Wcc/1
它将转换一个样本输入,例如,
it could be AuAC21-XTS02L or BgUX20-C02S etc.
it could be AuAC21-XTS02L or BgUX20-C02S etc.
it could be AuAC21-XTS02L or BgUX20-C02S etc.
进入
it could be Au(AC21-XTS02)L or Bg(UX20-C02)S etc.
it could be Au(AC21-XTS02)L or Bg(UX20-C02)S etc.
it could be Au(AC21-XTS02)L or Bg(UX20-C02)S etc.
【讨论】:
【参考方案2】:您可以将完全匹配 $0
用于模式 \D\D\d\d-\D1,3\d\d
而不需要捕获组,因为这不是必需的,并将其用于括号 \($0\)
之间的替换
输出将是
Au(AC21-XTS02)L or Bg(UX20-C02)S
注意 \D
匹配除数字以外的任何字符,因此它也可以匹配空格或换行符。
查看示例字符串,更精确地匹配(使用相同的替换 \($0\)
可能是:
[A-Z][a-z]\K[A-Z]2\d\d-[A-Z0-9]1,3\d\d(?=[A-Z])
Regex demo
【讨论】:
以上是关于Notepad ++中括号中的正则表达式[重复]的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式在非常大的html文件中匹配java中的花括号[重复]