0

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

捕获

((.*) 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'

我遇到的问题是,如果只出现一次匹配,则字符串捕获得很好,但是当我在上面提供的字符串出现时捕获的内容超出了预期。

4

1 回答 1

1

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

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

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

于 2013-05-28T04:05:16.970 回答