正则表达式仅匹配引号中的单词

时间:2014-04-24 04:02:02

标签: regex eclipse

我试图准备一个正则表达式来匹配一个单词,如果它在引号中。

即如果文本如下,我想在引号内匹配HelloWorld但不在引号内匹配另一个。{1}} (应匹配HelloWorld的第二个实例,但不匹配第一个实例)

HelloWorld " Showing HelloWorld"

使用案例

当我在Eclipse IDE中通过正则表达式搜索时,我需要在引号内找到文本HelloWorld,而不是用作变量名或类名的其他HelloWorld实例。

3 个答案:

答案 0 :(得分:1)

您可以使用以下内容。

'HelloWorld " Showing HelloWorld"'.match(/"(.*?)"+/g);  //["" Showing HelloWorld""]

答案 1 :(得分:0)

作为一种快速而肮脏的可能性,您可以使用以下方法扫描字符串:

/"[^"]*?"/

这将匹配字符串中的第一对引号(和包含的文本)(注意{"最小"匹配使用*?)。在循环中全局执行以在引号内提取文本。每当你匹配一个新的引用的作品时,检查它是否包含你正在寻找的东西(可能与另一个正则表达式)。

如果字符串中存在转义引号,则会失败,但这当然可以处理。

答案 2 :(得分:0)

如果所有模式都像

“显示HelloWorld”

您可以使用此

进行匹配
/".+\s(\w+)"/g

如果您的语言支持[:alpha:]

你只能匹配字母

/".+\s([[:alpha:]]+)"/g

匹配\ w +可以同时获得字母和数字