Vin*_*vic 27
你正在逃避管道一次太多,有效地逃避了反斜杠.
print "YES!" if ($line =~ m/^\|\s\|/);
Run Code Online (Sandbox Code Playgroud)
小智 5
管道符应该在Perl正则表达式中使用单个反斜杠进行转义.(Perl正则表达式与POSIX正则表达式略有不同.如果你在grep中使用它,那么事情会有所不同.)如果你专门在它们之间寻找空格,那么使用一个未转义的空格.它们在Perl正则表达式中完全可以接受.这是一个简短的测试程序:
my @lines = <DATA>;
for (@lines) {
print if /^\| \|/;
}
__DATA__
| | Good - space
|| Bad - no space
| | Bad - tab
| | Bad - beginning space
Bad - no bars
Run Code Online (Sandbox Code Playgroud)