正则表达式替换为重复捕获

时间:2013-05-28 04:00:43

标签: php regex

我正在尝试执行以下操作:

捕获

((.*) Common) \| (A, B, C)

替换为:

$1 | H, I, J $2

在sql文件上看起来像:

'varX Common | A, B, C', 'asdf',  'varY Common | A, B, C', 'sdfg', 'varZ Common | A, B, C', 'qwer'

我遇到的问题是,如果匹配只出现一次,则字符串捕获正常,但在显示上面提供的字符串时捕获的数量超过预期。

1 个答案:

答案 0 :(得分:1)

尝试((.*?) Common) \| (A, B, C)

?切换*非贪婪。因此,它不会匹配尽可能多的文本,而是在第一场比赛时停止。

我假设,基于$1,您在Perl,PHP等中使用PCRE变体。