继从上一个问题 https://stackoverflow.com/questions/1990790/using-regex-to-match-string-between-two-strings我在其中问:
如何使用正则表达式来匹配两个字符串之间的文本,其中这两个字符串本身包含两个其他字符串,并且内部和外部封闭字符串之间有任意数量的文本?
我得到了这个答案:
/outer-start.*?inner-start(.*?)inner-end.*?outer-end/
我现在想知道如何从外部封闭字符串和内部封闭字符串之间的文本中排除某些字符串。
例如,如果我有这样的文字:
外起点一些文字内启动 我想要的文字 内端更多文字外端
我希望“一些文本”和“更多文本”不包含“不需要的”一词。
换句话说,这是可以的:
外起点一些想要的文字内启动 我想要的文字 内端更多想要的文字外端
但这不行:
外起点一些不需要的文字内启动 我想要的文字 内端更多不需要的文本外端
或者进一步解释一下,上面的答案中外部和内部分隔符之间的表达式应该排除“不需要”一词。
使用正则表达式很容易匹配吗?
替换第一个和最后一个(但不替换中间).*?
with (?:(?!unwanted).)*?
。 (在哪里(?:...)
是一个非捕获群,并且(?!...)
是负向前瞻。)
然而,这很快就会在任何实际(而不是示例)使用中出现极端情况和警告,并且如果您询问您真正在做什么(使用真实的示例,即使它们是简化的,而不是编造的示例) ),您可能会得到更好的答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)