【发布时间】:2018-05-01 04:40:13
【问题描述】:
我在尝试使用正则表达式查找内容时遇到问题。
我有以下正则表达式
([{\-\+~a-zA-Z0-9]+){3,}
它可以正常工作,但是,我需要在某个字符之后捕获所有可能的匹配项,在本例中为}。
faz.}a..sd..3·$....................foo....e..P...0...................bar
foo 和 bar 必须匹配,但 faz 不应该匹配。请注意,我不能使用.+(?=}),因为它会将} 之后的所有内容捕获到单个匹配项中。我在互联网上搜索,每个答案都暗示了这种模式。
提前致谢。
【问题讨论】:
-
环境是什么?工具?编程语言?试试
[-{+~a-zA-Z0-9]{3,}(?![^}]*}) -
我目前正在 Regex101 (pcre) 中进行测试,如果可行,我将在 C# 中实现它。
-
啊哈,那是用错网站了。 PCRE 与 .NET 正则表达式不同。但是上面的建议在两种口味中都是一样的。在 .NET 中,您也可以使用
(?<=}.*)[-{+~a-zA-Z0-9]{3,}。