我试图找到以字母开头的所有匹配项| |
.
我试过了:if ($line =~ m/^\\\|\s\\\|/)
哪个没用.
有任何想法吗?
你正在逃避管道一次太多,有效地逃避了反斜杠.
print "YES!" if ($line =~ m/^\|\s\|/);
管道符应该在Perl正则表达式中使用单个反斜杠进行转义.(Perl正则表达式与POSIX正则表达式略有不同.如果你在grep中使用它,那么事情会有所不同.)如果你专门在它们之间寻找空格,那么使用一个未转义的空格.它们在Perl正则表达式中完全可以接受.这是一个简短的测试程序:
my @lines = ; for (@lines) { print if /^\| \|/; } __DATA__ | | Good - space || Bad - no space | | Bad - tab | | Bad - beginning space Bad - no bars