当前位置:  开发笔记 > 编程语言 > 正文

如何匹配管道字符后跟空格和另一个管道?

如何解决《如何匹配管道字符后跟空格和另一个管道?》经验,为你挑选了2个好方法。

我试图找到以字母开头的所有匹配项| |.

我试过了:if ($line =~ m/^\\\|\s\\\|/)哪个没用.

有任何想法吗?



1> Vinko Vrsalo..:

你正在逃避管道一次太多,有效地逃避了反斜杠.

print "YES!" if ($line =~ m/^\|\s\|/);



2> 小智..:

管道符应该在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  

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有