Regex 如何匹配除and、or、| |、&;之外的内容&;在perl正则表达式中

Regex 如何匹配除and、or、| |、&;之外的内容&;在perl正则表达式中,regex,perl,Regex,Perl,比如像这样 $str = "1 < 4 and 8 > 2 or 4 * 3 or $m =~ /^\d+&\$/"; $str=“12或4*3或$m=~/^\d+&\$/”; 我想捕获 12 4*3 $m=~/^d+&$/ 但是,$str=~/\s+(?和|或&&&&&&\\\\\\\\\){1,}\s+/不起作用,任何修改的帮助要将$str设置为该值,应使用单引号(或转义所有元字符) my$str='12或4*3或$m=~/^\d+&\$/'; my@captur

比如像这样

$str = "1 < 4 and 8 > 2 or 4 * 3 or $m =~ /^\d+&\$/";
$str=“1<4和8>2或4*3或$m=~/^\d+&\$/”;
我想捕获

  • 1<4
  • 8>2
  • 4*3
  • $m=~/^d+&$/

但是,
$str=~/\s+(?和|或&&&&&&\\\\\\\\\){1,}\s+/不起作用,任何修改的帮助要将$str设置为该值,应使用单引号(或转义所有元字符)

my$str='1<4和8>2或4*3或$m=~/^\d+&\$/';
my@capture=split/\s+(?:and | or |&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;

可以吗\B(和|或|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&。你是说你想放弃逻辑and/or的意义吗?你考虑过解析器吗?不知道,它是什么意思。你能用其他例子说明吗?regex/^d+&\$/不能被捕获是什么意思?如果字符串包含regex和变量,比如$m、/^\d+$/,它就不起作用了。如果匹配,$m将消失,则打印=~/^\d+$/$m之类的内容不会消失,因为您使用的是双引号,因此它会尝试将变量$m插入字符串中(也不会使用反斜杠)。一旦$str设置为您想要的值,匹配就没有问题了。
my $str = '1 < 4 and 8 > 2 or 4 * 3 or $m =~ /^\d+&\$/';
my @capture = split  /\s+(?:and|or|&&|\|\|)\s+/, $str;