gpt4 book ai didi

regex - 在正则表达式中使用变量

转载 作者:行者123 更新时间:2023-12-01 09:53:40 25 4
gpt4 key购买 nike

我正在使用一些 sub(), gsub()函数来替换存储在变量中的内容。

比如说:

$ awk 'BEGIN {str="hello bee"; patt="llo"; gsub(patt,"XX",str); print str}'
heXX bee

这会将 str 中包含的字符串中所有出现的 llo 替换为 XX。不错。

现在说我想使用一个更复杂的正则表达式,它同时使用变量和模式。例如,“he” + 变量patt。我该怎么做?

如果我尝试使用 gsub(/he/patt, ...) 它不起作用:

awk 'BEGIN {str="hello bee"; patt="llo"; gsub(/he/patt,"XX",str); print str}'

返回

hello bee

代替

XX bee

最佳答案

那是你需要字符串连接的时候,因此必须使用字符串定界符而不是正则表达式的正则表达式定界符:

$ awk 'BEGIN {str="hello bee"; patt="llo"; gsub("he"patt,"XX",str); print str}'
XX bee

请注意,您随后需要将所有转义字符加倍,因为 awk 必须首先将字符串转换为正则表达式,这样会用完其中一个转义字符。

关于regex - 在正则表达式中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32890861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com