Regex 正则表达式捕获的是开头的单词,而不是我想要的组

Regex 正则表达式捕获的是开头的单词,而不是我想要的组,regex,Regex,我必须解析如下所示的数据: bestPerDoseProductByContract":{"code":"1245678" ...<lots of characters here>... "indicator":"blue" 但这从一开始就抓住了价值。点和星是问题所在。我只想捕获表达式以bestPerDoseProductByContract:{“code”:“…开头,以“indicator:”绿色“”结尾的位置。我想要的是“绿色”的数字值(\d+)。我得到的是它所经过的第一个数

我必须解析如下所示的数据:

bestPerDoseProductByContract":{"code":"1245678" ...<lots of characters here>... "indicator":"blue" 
但这从一开始就抓住了价值。点和星是问题所在。我只想捕获表达式以
bestPerDoseProductByContract:{“code”:“
…开头,以
“indicator:”绿色“
”结尾的位置。我想要的是“绿色”的数字值
(\d+)
。我得到的是它所经过的第一个数字值

我对Reg Exp不是很流利,但已经研究了边界词,字符串的开头(这是错误的)


非常感谢您对修复的任何解释。

您是对的,
*
是问题所在,因为它是贪婪的(在仍然匹配的情况下消耗了它所能消耗的一切)

使用负向前看,这样你就不会用你的
*
跑过
“指示器”
,如下所示:

bestPerDoseProductByContract":{"code":"(\d+)((?!"indicator").)*"indicator":"green"

(?!“指示符”)
是一个负前瞻,表示“下一个字符不能是
”指示符“


将此应用于
将dot从匹配任何内容更改为匹配除
“indicator”
的前导
之外的任何内容,因此匹配永远不会跨越多个bestPerDoseProductByContracts。

你是对的,
*
是问题所在,因为它很贪婪(在仍然匹配的情况下会消耗一切)

使用负向前看,这样你就不会用你的
*
跑过
“指示器”
,如下所示:

bestPerDoseProductByContract":{"code":"(\d+)((?!"indicator").)*"indicator":"green"

(?!“指示符”)
是一个负前瞻,表示“下一个字符不能是
”指示符“


将此应用于
会将dot从匹配任何内容更改为匹配除
“indicator”
的前导
之外的任何内容,因此匹配不会跨越多个bestPerDoseProductByContracts。

如果您不想用该正则表达式捕获任何其他内容,您可以简单地使用以下方法:

\d+(?=.*"indicator":"green")
这是一个简单的积极展望

断言可以在此处匹配给定的子模式,而无需 消费角色

这个解决方案的好处是,如果出于某种原因,
包含
“指示器”
,它仍然有效


您可以使用正在计算的其他行对其进行检查和测试。当您需要计算正则表达式时,此网站通常非常有用。

如果您不想使用该正则表达式捕获任何其他内容,您可以简单地使用以下方法:

\d+(?=.*"indicator":"green")
这是一个简单的积极展望

断言可以在此处匹配给定的子模式,而无需 消费角色

这个解决方案的好处是,如果出于某种原因,
包含
“指示器”
,它仍然有效


你可以检查它,并用你正在计算的其他行测试它。当你需要计算正则表达式时,这个网站通常非常有用。

用什么语言?听起来你应该解析JSON并导航它而不是用什么语言?听起来你应该解析JSON并导航它而不是用什么语言。非常感谢!!!!!!我确实尝试过使用它?!但我知道我没有正确地使用它…我会消化你给出的内容,因为这在不久的将来会非常有用…非常感谢你的帮助、信息和指导。@user3880668如果一个答案最好地回答了你的问题,你应该单击答案左侧的大勾来回答它。抱歉延迟,我已接受此解决方案,但有另一个问题。与上面的格式类似,但这次regexp不工作,因此有迹象表明。)*工作不正常,我尝试以不同的方式应用此方法,甚至尝试其他一些分组构造,但没有成功。是否还有其他way若要选择2个值之间的所有“垃圾”?我仍然需要将其开头保持为类似的bestPerDoseProductByContract:{“code:”(\d+)并以“indicator:”结束:“绿色”…但两者之间的某些东西正在引发问题..我将看看我能做些什么来删除任何公司敏感信息并保留格式,并允许您查看我面临的问题。请给我一些时间来完成此操作。好的,伙计们,我正在寻找一种方法上载一个包含信息的文本文件…这东西的长度为6581个字符这正是我需要捕获的部分。我如何在这里发布这些信息?非常感谢!我确实尝试过使用它?!但我知道我没有正确地使用它…我会消化你给出的内容,因为这在不久的将来会非常有用…非常感谢你的帮助、信息和指导。@user3880668如果某个答案最能回答您的问题,您应该通过单击答案左侧的大勾号来完成。很抱歉延迟,我已经接受了此问题的解决方案,但还有另一个问题。与上面的格式类似,但这次regexp不起作用,因此有迹象表明。)*工作不正常,我已尝试应用是不同的,甚至尝试了其他一些分组构造,但没有运气。是否有其他方法可以选择两个值之间的所有“垃圾”?我仍然需要将此开头保持为类似的bestPerDoseProductByContract:{“code”:(\d+)并以“indicator”:“green”结尾…但两者之间的某些东西正在引发问题..我将看看我能做些什么来删除任何公司敏感信息并保留格式,并允许您查看我面临的问题。请给我一些时间来完成此操作。好的,伙计们,我正在寻找一种方法上载一个包含信息的文本文件…这东西的长度为6581个字符这正是我需要捕捉的部分..我如何在这里发布这些信息?