-4

如果我想让程序查看字符串是否包含这些字符,我该怎么办。让我们举个例子:我想省去那些字符:'*',':','&','=',... 我使用的代码是:

if(!($line =~ /(\*|\:|\&)/)){

但是当我尝试编译时,它给出了一个错误:

Unknown verb pattern '|a' in regex; marked by <-- HERE in m/(*|,|&|:) <-- HERE / 
at busquedas.pl line 10.

那些不相信我的人的错误;)谢谢。在此处输入图像描述

4

2 回答 2

1

如果您只是在寻找单个字符,则可以使用这样的字符类

if(!($line =~ /[*:&=]/)){
于 2013-08-14T11:31:56.390 回答
0

我没有收到错误。获得它的唯一方法是在左括号后面立即加上*.

$ perl -we 'if(!($line =~ /(\*|\:|\&)/)){}' 
Name "main::line" used only once: possible typo at -e line 1.
Use of uninitialized value $line in pattern match (m//) at -e line 1.
$ perl -we 'if(!($line =~ /(*|\:|\&)/)){}' 
Unknown verb pattern '|\' in regex; marked by <-- HERE in m/(*|\:|\&) <-- HERE / at -e line 1.

你如何运行代码?您是否真的粘贴了产生错误的行?

splain说:

Unknown verb pattern '' in regex; marked by <-- HERE in m/(*) <-- HERE / at -e
    line 1 (#1)
(F) You either made a typo or have incorrectly put a * quantifier
after an open brace in your pattern.  Check the pattern and review
perlre for details on legal verb patterns.
于 2013-08-14T11:38:13.490 回答