0

说,我有这样的行:

某事.AA.AA.DARKSIDE

呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜

我想为每一行找到 $before = $1; $之后 = $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将是一个变量,所以我无法对其进行硬编码。谢谢你的帮助。

4

1 回答 1

0

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

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

然后使用$beforeand $aftereach 一次没有和一次 with$middle分别连接到字符串的结尾和开头。

于 2013-09-30T13:37:24.023 回答