Regex 正则表达式匹配字符串之前和最近的第一个匹配项
我正在尝试使用正则表达式获取与名称“Daily”最接近的ID的编号。不过,我在这方面遇到了困难。 当我尝试正则表达式模式时,会得到以下结果之一:Regex 正则表达式匹配字符串之前和最近的第一个匹配项,regex,Regex,我正在尝试使用正则表达式获取与名称“Daily”最接近的ID的编号。不过,我在这方面遇到了困难。 当我尝试正则表达式模式时,会得到以下结果之一: 从第一个ID出现到选择“每日”的所有内容 所有ID都是单独选择的(我可以指定匹配号以获得正确的ID,但问题是,如果在我需要的ID之前添加或删除ID,它将不再匹配) 找不到匹配项 我一直在试着测试我的正则表达式 链接中还有一个文本示例,我试图从中获取结果。我没有包括全文,因为那会有太多的信息。使用当前的正则表达式模式,我可以选择匹配编号3来获得所需的结果
},{.*
我已经尝试了很多不同的选项,但没有一个是我想要的,除了一个我需要指定匹配号的选项,当我让正则表达式匹配所有的“id”:([0-9]*)模式时
有人知道如何正确地获得所需的结果吗?我想您想要获得“id”:8
。因此,您可以使用以下正则表达式:
“id:([0-9]*)(?=[^\}]*?每日)
看
为了澄清:我在正向前瞻中使用了一个否定字符类[^\}]*?
,任何数量的重复,尽可能少,因为在{content:[{“id”:7,“name”:“Hourly”,“someRandomText”:{“id”:1,“moreRandomText”},{“id”:8,“1/1”,“name”:“dailyRandom”:{“id”:1,“dailyRandomText”},{“id”:9,“1/1”,“name”:“9am”,“amRandom”:{“id”:1,“amRandomText”}}]}
string.不要使用正则表达式,使用json解析器,查找名为的项目。@Jerry:示例文本在链接中。@CasimiretHippolyte奇怪,我第一次使用它时(选项卡仍然打开),我收到了该站点的欢迎信息…谢谢!我一直试图使用否定字符,但可能是错误的。您的答案适用于查找属于“Daily”的ID,也适用于查找“9am”的ID“当我在正则表达式中更改它时也是如此,这正是我想要的!非常感谢。我找到了这么多的文章和许多其他堆栈溢出的答案,但没有比您在这里解释的更简单的方法了。:-)