Dis*_*ame 10 sed text-processing regular-expression
我正在尝试运行这个简单的sed
命令
sed '/VALUES\ \([0-9]/d!'
Run Code Online (Sandbox Code Playgroud)
它仍然给我一个错误说"RE error: parentheses not balanced"
(是的引号在那里)。
我能做什么?我的意思是我可以添加另一个)
但它与我的正则表达式不匹配。
默认情况下,sed
使用基本正则表达式 (BRE)。在BRE,\(
和\)
用于定义子表达式:
子表达式可以通过将其包含在字符对“(”和“)”之间来定义在 BRE 中。这样的子表达式应匹配它在没有“(”和“)”的情况下匹配的任何内容,除了子表达式内的锚定是可选行为;请参阅 BRE 表达式锚定。子表达式可以任意嵌套。
然后,您可以使用反向引用表达式'\n'
来匹配相同的(可能为空的)字符串,该字符串与包含在\(
and之间的子表达式匹配\)
,其中n
from1
到9
。在这里,您只使用左括号\(
,sed
找不到右括号并引发错误。
在 BRE 中,您只是(
用来匹配文字左括号。
在某些sed
实现中,您可以切换到扩展正则表达式 (ERE)(例如带有选项的GNU sed-r
),因此您必须使用\(
来匹配文字左括号。