正则表达式获取两个字符串之间的所有字符串

RegEx to get ALL Strings between two Strings

本文关键字:字符串 之间 两个 获取 正则表达式      更新时间:2023-09-26

我似乎对正则表达式有一种爱恨交织的关系,因为我喜欢它令人难以置信的强大,但与此同时,我还不太了解它的所有细微差别。

我有相当长的 JSON 提要,我需要解析和捕获两个特定字符串之间的所有匹配项。我包含一个指向 regex101.com 示例的链接,其中包含一些 JSON 结果。

regex101.com 示例

我正在尝试匹配每个/content/usergenerated/jcr:content之间的每个字符串

我想我真正应该尝试匹配的是一个以 /content/webAppName/en/home 开头并在/jcr:content之前结束的字符串

我关心的道路永远从/content/webAppName/en/home开始

你必须使用"积极的前瞻",如果数字后面跟着一些东西,它与一系列数字相匹配https://regex101.com/r/fU1iD1/4

只需将要

删除的两件事括在括号中,然后从输出中删除它们。 所以...

('/content'/usergenerated)(.*)('/jcr':content)

替换为

/2

这就是这两者中间的一切。

编辑:抱歉,没有看您的示例:) - 有一个已删除的答案说添加 g 修饰符,看起来它有效。

/content/usergenerated/content/webAppName/en/home([a-zA-Z/-]+)/jcr:content

这应该有效。 它匹配 3 个中的 4 个不知道为什么它不匹配其中一个。 你可以在循环中使用exec(),直到它返回null并获取对象[1],其中包含第一个也是唯一一个捕获组的数据。

万事如意。

PS:我在正则表达式的选项中使用了 gmi。