正则表达式在具有重现模式的单词之间检索文本

时间:2016-05-26 10:03:44

标签: regex nsregularexpression

我有以下文字文字

  

“value”:“1001174227”,“fieldLabel”:“A field”},{“value”:“我需要的价值”,“fieldLabel”:“期间”}

我的目标是使用正则表达式来提取字符串

x = b * r mod n

我尝试使用标准的开始和结束标识符使用正则表达式进行匹配,方法是拉中间的文本(请参阅下面的我的正则表达式),但它会拉出整个字符串。我认为这是因为重复出现的文字

THE VALUE I NEED

2 个答案:

答案 0 :(得分:0)

捕获非引号:

value\":\"([^\"]*)\",\"fieldLabel\":\"Period\"

这会强制唯一匹配为紧接目标之前的value

表达式[^"]表示"任何字符不是引号",因此将捕获匹配限制为仅引号之间的字符。

请参阅live demo,显示作为第1组捕获的目标输入。

使用不情愿的量词.*?无法正常工作,因为第一个value仍然可以匹配。

答案 1 :(得分:0)

您可以将其简化为:

"([^"]*)","fieldLabel":"Period"

根据代码的其余部分,您可能需要或不需要将"替换为\"。例如,您是否可以使用单引号(')来定义正则表达式字符串,从而避免所有丑陋的反斜杠?