Regex Perl正则表达式多个字符
如果我想让程序查看字符串是否包含这些字符,我必须做什么。 让我们举个例子: 我想省去那些字符:“*”、“:”、“&”、“=”、,。。。 我使用的代码是:Regex Perl正则表达式多个字符,regex,perl,file,Regex,Perl,File,如果我想让程序查看字符串是否包含这些字符,我必须做什么。 让我们举个例子: 我想省去那些字符:“*”、“:”、“&”、“=”、,。。。 我使用的代码是: if(!($line =~ /(\*|\:|\&)/)){ 但当我尝试编译时,它会给出一个错误: Unknown verb pattern '|a' in regex; marked by <-- HERE in m/(*|,|&|:) <-- HERE / at busquedas.pl line 10. 对
if(!($line =~ /(\*|\:|\&)/)){
但当我尝试编译时,它会给出一个错误:
Unknown verb pattern '|a' in regex; marked by <-- HERE in m/(*|,|&|:) <-- HERE /
at busquedas.pl line 10.
对那些不相信我的人来说是错误的;
谢谢。如果您只是在寻找单个字符,您可以使用如下的:
if(!($line =~ /[*:&=]/)){
我没有得到错误。获得它的唯一方法是在左括号后面立即加上*
它给了我一个错误:串联的无用使用。或Busqedas.pl第12行的void上下文中的字符串。无法复制该错误。正如错误本身所提到的,它不符合正则表达式。它所属的正则表达式位于第10行,开始时就像它所说的:/*| A您不能随意地交换部分错误消息。您需要剪切并粘贴准确的错误消息,并确保它完全属于您显示的代码行。好的,看看照片@TLPDon't believe me???不是我们不相信,是你不明白别人告诉你什么。这与你问题中的错误完全不同。首先,在你的问题中,正则表达式中没有a。另一方面,您在正则表达式和错误中都逃过了asterix\*。如果你改变这样的小细节,就不可能回答你的问题。
$ 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.
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.