我似乎与RegEx有一种爱/恨的关系,因为我喜欢它有多么强大,但与此同时,我还不太了解它的所有细微差别。
我有相当冗长的JSON提要,我需要解析并捕获两个特定字符串之间的所有匹配。我已经在a link to the regex101.com example中添加了一些JSON结果。
我正在尝试匹配每个/content/usergenerated
和/jcr:content
...
我想我应该尝试匹配的是一个字符串,以/content/webAppName/en/home
开头,结尾 /jcr:content
我关心的路径始终以/content/webAppName/en/home
答案 0 :(得分:1)
你必须使用匹配数字序列的“正向前瞻”,如果后面跟着某些数字 https://regex101.com/r/fU1iD1/4
答案 1 :(得分:0)
只需在括号中包含要删除的两个内容,然后将其从输出中删除。所以......
(\/content\/usergenerated)(.*)(\/jcr\:content)
替换为
/2
这两者中间的一切都是。
编辑:对不起,没看你的例子:) - 有一个删除的答案,说添加g修饰符,看起来很有效。
答案 2 :(得分:0)
/内容/ usergenerated /内容/ webAppName / EN /家庭([A-ZA-Z / - ] +)/ JCR:含量
这应该有效。它匹配4中的3个不知道为什么它与em中的一个不匹配。您可以在循环中使用exec(),直到它返回null并获取包含第一个和唯一捕获组的数据的对象[1]。
一切顺利。PS:我在正则表达式的选项中使用了gmi。