gpt4 book ai didi

regex - 是否可以在 perl 中定义单词边界字符集

转载 作者:行者123 更新时间:2023-12-02 07:59:28 24 4
gpt4 key购买 nike

我需要替换 perl 中的一些字符串,这些字符串以 $ 字符开头并以 ) 结尾。例如,将 $(FOO) 替换为 FOO。我不想匹配 $(FOO)_BLAHBLAH_$(FOO) 或 $(FOO)$(BAR) 之类的东西,但我确实想匹配$($(FOO)) 的内部。我不能在正则表达式中使用 \b,因为 $) 实际上都不是单词字符。不过,我想做一些等效的事情。我想到了:

/([^\w\$\)_]|^)\$\(FOO\)([^\w\$\(_]|$)/$1FOO$2/

这看起来很乱(具体来说,我不喜欢正则表达式中的 $1$2。我只是想知道是否有更简洁的方法。

最佳答案

使用负环视使模式更短、更易读,并摆脱了捕获组:

s/(?<![\w$)])\$\(FOO\)(?![\w$(])/FOO/

关于regex - 是否可以在 perl 中定义单词边界字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59383114/

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