给定字符串后的正则表达式匹配

时间:2016-09-29 22:04:37

标签: regex

{{"name":"alpha",
 "age":"23",
 "sex":male",
 "location":"U.S"
 }
 {"name":"beta",
 "age":"23",
 "sex":male",
 "location":"Cambodia"
}}

如果我给出一个名字,我的正则表达式应该返回该名称的位置。 假设名称是作为变量给出的,那么我试试,

"name":"alpha"[\d\D]*"location":"(.+?)"

我总是使用此表达式获取最后一个位置。如何根据名称获取位置?有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

你总是得到最后一个,因为[\d\D]*匹配中间的所有内容,正则表达式尽可能地匹配。如果您的Regex引擎知道非贪婪的匹配(并且它看起来像是因为您自己在该位置使用了非贪婪的匹配:+?),您应该能够使用这样:

"name":"alpha"[\d\D]*?"location":"(.+?)"