gpt4 book ai didi

regex - 在 Perl 的匹配运算符中插入变量时,如何转义元字符?

转载 作者:行者123 更新时间:2023-12-03 23:59:10 25 4
gpt4 key购买 nike

假设我有一个包含要匹配的行的文件:

foo
quux
bar

在我的代码中,我有另一个数组:
foo
baz
quux

假设我们遍历文件,调用每个元素 $word ,以及我们正在检查的内部列表, @arr .
if( grep {$_ =~ m/^$word$/i} @arr)

这工作正常,但在某些可能的情况下,我们有一个测试用例 fo.在文件中, .在正则表达式中作为通配符操作,而 fo.然后匹配 foo ,这是 Not Acceptable 。

这当然是因为 Perl 将变量插入到正则表达式中。

问题:

如何强制 Perl 按字面意思使用变量?

最佳答案

使用 \Q...\E在变量值插值后直接在 perl 字符串中转义特殊符号:

if( grep {$_ =~ m/^\Q$word\E$/i} @arr)

关于regex - 在 Perl 的匹配运算符中插入变量时,如何转义元字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2001176/

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