正则表达式不匹配

时间:2014-05-28 19:06:53

标签: regex

我需要赶上这个国家。这是消息的示例

field1="text" field2="123.456" country="Netherlands" fieldx="text" country="United States" fieldy="more text"

使用此正则表达式时,它仅匹配荷兰。它应该匹配两个国家

^.+\scountry=\"(\S+)\"

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

字符串United States包含一个空格,但在您的捕获组中,您有\S+,它匹配任何空格的字符串。

我建议使用[^\"]+(即除了引号之外的任何字符串):

country=\"([^\"]+)\"

demo

答案 1 :(得分:1)

您要匹配的第二个国家/地区包含空格,因此无法匹配,\S匹配任何非空白字符。您可以在此处使用否定字符类[^ ]

country="([^"]*)"