我在一个系统上看到一个脚本,我必须在几个(旧的)平台上维护这个脚本,使用sed regexp:
sed 's/([\x27"])key1: 1value1//'
\x27
是转义单引号的一种方式。所以更容易读懂的regexp格式是:
(['"])key1: 1value1
将第一组匹配为'
或"
,然后在匹配regexp中使用1
来匹配类似的引用。所以它将匹配所有行:
"key": "value"
'key': 'value'
现在这是一个很好的解决方案。但我担心这可能不存在于旧的sed版本。
所以问题是:这个特性是如何被称为的,它是如何被支持/可用的?这个特性被称为"反向引用",我认为这是正则表达式的标准特性。根据这个FAQ,它应该被所有sed
实现所支持。
组也可以嵌套
(like (this) is here)
,并且可以包含任何有效的正则。反向引用重复特定对象的内容组,使用反斜杠和数字(1-9)表示每个对应的组。换句话说,/(pom)1/
是另一种书写方式/pompom/
.