{{"name":"alpha",
"age":"23",
"sex":male",
"location":"U.S"
}
{"name":"beta",
"age":"23",
"sex":male",
"location":"Cambodia"
}}
如果我给出一个名字,我的正则表达式应该返回该名称的位置。 假设名称是作为变量给出的,那么我试试,
"name":"alpha"[\d\D]*"location":"(.+?)"
我总是使用此表达式获取最后一个位置。如何根据名称获取位置?有什么帮助吗?
答案 0 :(得分:2)
你总是得到最后一个,因为[\d\D]*
匹配中间的所有内容,正则表达式尽可能地匹配。如果您的Regex引擎知道非贪婪的匹配(并且它看起来像是因为您自己在该位置使用了非贪婪的匹配:+?
),您应该能够使用这样:
"name":"alpha"[\d\D]*?"location":"(.+?)"