【发布时间】:2019-08-21 08:27:11
【问题描述】:
我正在分析一些引用模式,并为每个句子提供通常看起来像这样的字符串
Various chemogenomics [<xref ref-type="bibr" rid="pone.0204999.ref008">8</xref>] methods have been proposed in the last decade [<xref ref-type="bibr" rid="pone.0204999.ref010">10</xref>–<xref ref-type="bibr" rid="pone.0204999.ref024">24</xref>] and also this one [<xref ref-type="bibr" rid="pone.0204999.ref008">8</xref>].
在尝试查找句子中的所有引文时,我的匹配项看起来像
>10<\/xref>–<xref ref-type="bibr" rid="pone.0204999.ref024">24<\/xref>
理想情况下,我可以用方括号识别(并替换)完整引用,即字符串
[<xref ref-type="bibr" rid="pone.0204999.ref010">10</xref>–<xref ref-type="bibr" rid="pone.0204999.ref024">24</xref>]
只知道我匹配的字符串。我想知道是否可以获取匹配字符串并将所有文本包含到最近的方括号中?
我可以在匹配字符串后使用惰性.*?] 正则表达式匹配右方括号,但不能对左方括号执行相同操作,因为它会找到句子的第一个左方括号,而不是比最接近匹配字符串的那个。
【问题讨论】:
-
由于 XML (
<xref.../>) 的东西在这里并不真正相关,我建议将问题归结为仅包含实际问题的最小工作示例(即匹配正方形内的文本括号)。顺便说一句:您需要使用\]而不是仅使用]来匹配字符“]”来转义正则表达式中的方括号。