gpt4 book ai didi

regex - 在 Perl 正则表达式中转义特殊字符

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

我正在尝试匹配 Perl 中的正则表达式。我的代码如下所示:

my $source = "Hello_[version]; Goodbye_[version]";
my $pattern = "Hello_[version]";
if ($source =~ m/$pattern/) {
print "Match found!"
}

问题出现在当 Perl 尝试匹配正则表达式时,括号表示一个字符类(或者我读到的),并且匹配最终失败。我知道我可以用 \[ 转义括号或 \] ,但这需要另一个代码块来遍历字符串并搜索括号。有没有办法让括号自动忽略而不单独转义?

快速说明:我不能只添加反斜杠,因为这只是一个示例。在我的真实代码中, $source$pattern都来自 Perl 代码之外(URIEncoded 或来自文件)。

最佳答案

\Q将禁用元字符,直到 \E找到或模式结束。

my $source = "Hello_[version]; Goodbye_[version]";
my $pattern = "Hello_[version]";
if ($source =~ m/\Q$pattern/) {
print "Match found!"
}

http://www.anaesthetist.com/mnm/perl/Findex.htm

关于regex - 在 Perl 正则表达式中转义特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7423143/

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