我需要提取标识符([[1]] some text [[\1]]
)之间的字符串,并且每个标识符都必须以相同的数值开头和结尾。
到目前为止,我已经找到了此解决方案: /(?<= [[([[0-9])]])(。*?)(?= [[\([0-9])]])/ gm
输入正确的文本,但是我需要标识开始和结束标识符之间的数字。
[[1]] abc [[\1]] [[2]] pqr [[\2]] xyz [[3]] rst [[\3]] [[5]] ijk [[\5]]
预期结果:
[" abc ", " pqr ", " rst ", "ijk" ]
xyz 应该被忽略,因为它不在标识符之间。
我已经更新了正则表达式,使其看起来像这样: Updated Example 请让我知道它是否正确。
答案 0 :(得分:0)
您可以尝试以下正则表达式模式:
\[\[(\d+)\]\](.*?)\[\[\\1\]\]
标签内包含的内容可以作为 second 捕获组使用。
\[\[(\d+)\]\] match an opening tag e.g. [[1]], and capture the number
(.*?) match and capture all content inside the tags
\[\[\\1\]\] match a closing tag (\1 represents the number)
答案 1 :(得分:0)