我正在尝试使用正则表达式来获取最接近名称“Daily”的 ID 号。不过,我遇到了困难。
当我尝试正则表达式模式时,我得到以下结果:
- 从第一个 ID 出现到选择“每日”的所有内容。
- 所有 ID 都是单独选择的(我可以指定匹配编号来获取正确的 ID,但问题是,如果在我需要的 ID 之前添加或删除 ID,它将不再匹配)。
- 未找到匹配项。
我已经试了regexr http://regexr.com/3amvv测试我的正则表达式。
链接中还有我试图从中获取结果的文本示例。我没有包含全文,因为这会包含太多信息。使用当前的正则表达式模式,我可以选择“匹配编号 3”来获得我需要的结果,但问题是可以在所需结果之间添加或删除 ID。
我使用的另一种模式是}},{.*?"id":([0-9]*).*?Daily
该模式会产生正确的 ID,但问题是我还需要获取名称为“9am”的部件以及其他部件的 ID。将该模式中的“Daily”更改为“9am”会返回“Daily”的 ID,而不是“9am”的 ID。
我已经尝试了很多不同的选项,但是没有一个选项能准确地找到我想要的,期望当我让正则表达式匹配所有“id”时需要指定匹配编号:([0-9]* ) 模式。
有谁知道我怎样才能正确获得想要的结果?
我想你想得到"id":8
。因此,您可以使用这个正则表达式:
"id":([0-9]*)(?=[^\}]*?Daily)
See the example http://regexr.com/3an08.
澄清一下:我正在使用否定的字符类[^\}]*?
在积极的前瞻中,重复次数任意,尽可能少,因为不应该有}
Daily 之前的符号{"content":[{"id":7,"name":"Hourly","someRandomText":{"id":1,"moreRandomText"}},{"id":8,"1/1","name":"Daily","dailyRandom":{"id":1,"dailyRandomText"}},{"id":9,"1/1","name":"9am","amRandom":{"id":1,"amRandomText"}}]}
string.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)