【发布时间】:2019-02-25 16:35:31
【问题描述】:
my $var1=<<EO_STR;
abc,./()éà haha
hihi
hoho
EO_STR
my $var2=<<EO_STR;
abc,./()éà haha
hihi
**TOTO**
hoho
EO_STR
我有两个变量 VAR1 和 VAR2 包含一个字符串,其中包含标点符号、特殊字符...,我想应用一个匹配变量所有内容的正则表达式,前提是它不包含单词TOTO,如果字符串包含 TOTO,则不要在 $1 中向我返回任何内容,否则将变量中的所有文本返回到 $1。
这意味着如果我在 $var1 上应用正则表达式,它将返回文本:“abc,./()éà haha 嗨嗨 hoho " 在 $ 1 中,如果我在 $ var2 上应用相同的正则表达式,它不会在 $ 1 中返回任何内容,因为 $var2 包含 TOTO
我试过了,还是不行:
$VAR1=~/((?!TOTO).)*/;
print $1."\n\n";
$VAR2=~/((?!TOTO).)*/;
print $1."\n\n";
1 美元他什么也没返回......
【问题讨论】:
-
$VAR != $var1这是您代码中的错字吗? -
先检查
/\bTOTO\b不匹配不是更容易吗?如果不匹配,字符串就是你想要的结果。