我是正则表达式的新手。我正在寻找可以帮助我在整个代码树中使用任何创建文件描述符的函数进行查找和替换的东西。
例如,我需要将socket(PF_LOCAL,SOCK_STREAM, 0)
更改为socket(PF_LOCAL,SOCK_STREAM | SOCK_CLOEXEC, 0)
在每种情况下,我都追加到第二个参数的末尾,但我不知道当前第二个参数将会持续多长时间或它将包含哪个文本。我认为最好的方法是找到第二个逗号并将其替换为我的字符串(" | SOCK_CLOEXEC,"
)
如果有人能给我这样的例子,那将非常有帮助。感谢
答案 0 :(得分:1)
我不完全确定这是你正在寻找的,但在perl中:
s/socket\(([^,]+),([^,]+),([^,]+)\)/socket($1,$2 | SOCK_CLOEXEC,$3)/
这意味着:
s/to_substitute/substitution_string/
"找到模式to_substitute
并将其替换为substitution_string
"
我用过:
[^,]+
表示"字符串没有逗号"。
()
用于捕获使用$1
,$2
,$3
替换字符串复制的字符串。
我希望这会有所帮助。