我问了一个问题将字符串插入文本文件中的列表变量 [使用 sed]
其中 @RomanPerekhrest 向我展示了不同的正则表达式语法。
\(=([^)]*\))
可以捕获[^)]*
为组 1 。这让我很困惑。
您可以在以下位置查看结果https://regex101.com/r/DRChkE/2
https://regex101.com/r/LItVNg/1
在我看来这\(([^\)]*)\)
是正确的,但它在 sed 中被破坏了。
所以我想知道如何让 sed 使用正则表达式语法标准作为 python 或 javascript (许多语言的通用标准)。
答案1
您正在寻找 Perl 风格的又名 PCRE 正则表达式,但这不是符合 POSIX 的语法,并且不受标准命令行工具(如sed
.支持称为基本正则表达式 (BRE) 和扩展正则表达式 (ERE) 的语法。前者sed
是默认值,后者是启用的-E
(在 GNU sed 中-r
也可以)。
您偶尔会看到一些支持 PCRE 的标准工具版本(例如 GNUgrep
具有该-P
标志),但这只是例外而不是常态。
请参阅标准维基百科正则表达式页面的部分了解详细信息。