gpt4 book ai didi

regex - Perl 正则表达式帮助 : character set, 文字反斜杠、引号字符

转载 作者:行者123 更新时间:2023-12-02 00:46:04 25 4
gpt4 key购买 nike

我有一个文本文件,我想确定哪些行包含反斜杠,后跟小写字母“n”或双引号字符。以下内容对我不起作用。有人可以解释一下为什么吗?谢谢!

my $pattern='\\[n"]';
if ($text =~ /$pattern/) {
# Do stuff...
}

最佳答案

在单引号内,除了嵌入的单引号或字符串末尾的反斜杠之外,不需要转义任何字符。然而,一对反斜杠被视为第一个转义第二个反斜杠,因此

my $pattern='\\[n"]'

相同
my $pattern='\[n"]'

我希望您现在可以看到,如果您使用 /$pattern/ 将其编译为正则表达式,反斜杠现在将转义左方括号 [

您在正则表达式中想要的是 /\\[n"]/,因此您需要在 $pattern 字符串中使用两个反斜杠。

因为每对反斜杠中的一个都被用作转义符,所以原始字符串中需要四个才能使事情正常工作,就像这样

my $pattern='\\\\[n"]'

正确生成六字符字符串 \\[n"]。现在您的匹配 /$pattern/ 将执行您想要的操作。

关于regex - Perl 正则表达式帮助 : character set, 文字反斜杠、引号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25455249/

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