匹配空间与sed匹配,因为它支持?

时间:2015-07-30 18:02:49

标签: regex sed

我在一个系统上看到了一个脚本,我必须在使用这个sed regexp的几个(旧)平台上进行维护:

sed 's/\([\\\x27"]\)key\1: \1value\1//'

\\\x27是一种逃避单引号的方法。所以更可读的形式的正则表达式是:

\(['"]\)key\1: \1value\1

它将第一个gruop与'"匹配,然后在匹配regexp中使用\1来匹配类似的引用。所以它将匹配所有行:

"key": "value"
'key': 'value'

现在这是一个很好的解决方案。但我担心这可能不会出现在旧的sed版本上。

所以问题是:这个功能如何被称为,以及支持/可用的方式是什么?

1 个答案:

答案 0 :(得分:1)

此功能称为“反向引用”,我认为它是正则表达式的标准功能。根据{{​​3}},所有sed实施都应该支持它。

  

组也可以嵌套\(like \(this\) is here\)并且可以包含   任何有效的RE。反向引用重复特定内容   组,使用反斜杠和数字(1-9)为每个对应   组。换句话说,/\(pom\)\1/是另一种写作方式   /pompom/