寻找部分匹配

时间:2013-09-30 09:35:45

标签: regex find-occurrences

说,我有类似的行:

SOMETHING.AA.AA.DARKSIDE

BLaH.AA.AA.Blah

我想找到每行$ $ = $ 1; $ after = $ 2; $ middle =“AA” 例如,对于第1行,我得到:

$before= “SOMETHING.”
$After = “.AA.DARKSIDE”

$before= “SOMETHING.AA”
$After = “.DARKSIDE”

我的代码如下所示:

$middle = “AA”;  

foreach (@lines){

   $line = $_;   

   while ($line =~m/^(.+)$middle(.+)$/g){

      $before = $1;
      $after  = $2;
  }
}

有一种简单的方法来改变我的正则表达式吗? PS:$middle将是一个变量,因此我无法对其进行硬编码。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

为什么要使用正则表达式呢?

($before, $after) = split(/$middle\.$middle/, $line);

然后每次使用$before$after一次,$middle分别连接到字符串的结尾和开头。