具有多个负面外观的正则表达式,用于在引号

时间:2017-06-28 14:12:01

标签: java regex regex-lookarounds

我不是正则表达式的专家,但基本上我想查找被引号括起来的所有文本,但我想排除任何匹配,其中引用文本的前缀为“name =”,“type =”,“ href =“等我有大约20个排除。 我在报价中找到所有文字的正则表达式是:(["'])(?:(?=(\\?))\2.)*?\1

根据我的阅读,语法背后的负面看法是:(?<!text) 如果任何人都可以提供可以在引号中找到所有文本的正则表达式,但忽略引号中任何以name =或type =开头的文本。一旦我知道正确的语法,我就可以弄明白其余的,如果这是可能的话。谢谢!

例如,如果正则表达式配置为在引号内查找文本,则在下面的此字符串上运行正则表达式将不返回匹配项,但仅当引号前面没有name =,type =,access =,output =。

<cffunction name="configure" returntype="void" access="public" output="false">

1 个答案:

答案 0 :(得分:1)

捕获组语法背后的正面外观是(?<=),正向前方捕获组是(?=)。因此,我认为符合您目标的正则表达式为(?<=\W")[^"]*(?="\W)

请注意,这仅适用于您引用的文字,如果前后都有空格或其他标点符号,请仔细调整以适合您的具体情况。