[英]Perl regular expression not responding to $
我有以下代码:
#!/usr/bin/perl
use Test::Simple tests => 2;
$file = "lalaletc";
$file2 = "lalal";
ok($file =~ m/^lala/);
ok($file2 =~ m/^lala$/);
输出如下:
1..2
ok 1
not ok 2
# Failed test at ./test.pl line 7.
# Looks like you failed 1 test of 2.
但是$ file2不再有字符,因此我希望它能够通过测试2。为什么没有?
您的变量$file2
设置为lalal
。 那是5个字符。 您的正则表达式为/^lala$/
,这意味着:
只有4个字符,因为缺少最后一个l
。 正则表达式不匹配,测试失败。 这是正确的行为。
在这里尝试: http : //rubular.com/r/O0GhEIiVAZ在末尾添加缺少的l
,它将匹配。
NODE EXPLANATION
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
lala 'lala'
--------------------------------------------------------------------------------
$ before an optional \n, and the end of the
string
请注意,在这种情况下,您不需要正则表达式。 您还可以使用eq
运算符 。
$
在这种情况下匹配字符串/行的结尾。 由于您的字符串中有一个未匹配的突出的“ l”,因此模式匹配失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.