小编And*_*mes的帖子

防止后视/前方匹配重叠

我试图匹配引号之间包含的字符串文字的所有部分.

(?<=[\"]).*?(?=(?<=[^\\])[\"]{1})

上面是一个正常工作的正则表达式,除了一个例外,它当然会匹配字符串文字的所有部分,其中左侧和右侧都有引号,无论引用对.

例如(星号表示匹配的字符):

Hello "my" name is "Andy", nice to meet you.`
       ** ********* ****
Run Code Online (Sandbox Code Playgroud)

这里的字符串文字部分" name is "只是因为它的两边都有一个引号字符而匹配.这对我们正在寻找的东西是不正确的.理想的结果是:

Hello "my" name is "Andy", nice to meet you.`
       **           ****
Run Code Online (Sandbox Code Playgroud)

完全理解这是可能的,也许应该通过写一个状态引擎来完成 - 我的问题是 - 用正则表达式术语 - 如果可能的话,我如何防止后面匹配一个先前与外观匹配的字符串文字部分 -先?

regex

4
推荐指数
1
解决办法
203
查看次数

标签 统计

regex ×1