Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何引用在一条语句中计算的正则表达式匹配?_Regex_Scope_Match - Fatal编程技术网

Regex 如何引用在一条语句中计算的正则表达式匹配?

Regex 如何引用在一条语句中计算的正则表达式匹配?,regex,scope,match,Regex,Scope,Match,我想做这样的事情 if(($Fifo[5]=~/T0int(\S+)/)&&($Fifo[6]=~/T0int(\S+)/)&&($1 ne $2)) { <Do something> } if($Fifo[5]=~/T0int(\S+/)&&($Fifo[6]=~/T0int(\S+/)&($1 ne$2)) { } 如何引用在两个regexp中计算的匹配 我说的$1是指在第一个regexp中计算匹配,在下一个regexp中计算$2。试试

我想做这样的事情

if(($Fifo[5]=~/T0int(\S+)/)&&($Fifo[6]=~/T0int(\S+)/)&&($1 ne $2))
{
    <Do something>
}
if($Fifo[5]=~/T0int(\S+/)&&($Fifo[6]=~/T0int(\S+/)&($1 ne$2))
{
}
如何引用在两个regexp中计算的匹配


我说的$1是指在第一个regexp中计算匹配,在下一个regexp中计算$2。

试试这样的方法:

if( ($Fifo[5] =~ (/T0int(\S+)/)) && ($Fifo[6] =~ (/T0int(\S+)/)) && ($1 ne $2) )
基本上,在正则表达式周围加上括号,将它们分组为$1、$2

my($first)  = $Fifo[5] =~ /T0int(\S+)/;
my($second) = $Fifo[6] =~ /T0int(\S+)/;

if (defined($first) && defined($second) && $first ne $second)) { ⋯ }
或者更傲慢地说:

if (($Fifo[5] =~ /T0int(\S+)/)[0] ne ($Fifo[6] =~ /T0int(\S+)/)[0]) { ⋯ }
甚至更傲慢地说:

if ( (my($first,   $second) = "@Fifo[5,6]" =~ /T0int(\S+)/g ) 
      && $first && $second
      && $first ne $second)
{
    ⋯
}