gpt4 book ai didi

regex - 当我匹配包含斜杠的正则表达式时,为什么 smartmatch 返回 false?

转载 作者:行者123 更新时间:2023-12-04 10:30:09 26 4
gpt4 key购买 nike

我正在尝试使用 smartmatch 运算符将简单字符串与正则表达式模式进行匹配:

#!/usr/bin/env perl

use strict;
use warnings;
use utf8;
use open qw(:std :utf8);

my $name = qr{/(\w+)/};
my $line = 'string';

print "ok\n" if $line ~~ /$name/;

我希望这会打印“ok”,但事实并非如此。为什么不?

最佳答案

从正则表达式中删除斜杠:

my $name = qr{(\w+)};

由于您将正则表达式包装在 qr{} 中,大括号内的所有内容都被解释为正则表达式。因此,如果您要扩大搜索范围,它将是:
print "ok\n" if $line ~~ /\/(\w+)\//;

由于您的字符串不以斜杠开头或结尾(或有任何以斜杠结尾的子字符串),因此匹配失败,并且您不会打印 ok .

关于regex - 当我匹配包含斜杠的正则表达式时,为什么 smartmatch 返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5902319/

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