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