.net 为什么正则表达式不返回符合模式的所有匹配项?

.net 为什么正则表达式不返回符合模式的所有匹配项?,.net,regex,.net,Regex,我需要以类似filename=filename.Extension的格式提取文件名。 我有一个正则表达式模式,但当我测试它时,它只返回1个匹配,而不是2个。 这种模式有什么问题 模式: 测试字符串:: idman636build5.exe?b=1&filename=idman636build5.exe idman636build5.exe?b=1&filename=idman636build5.exe 预期匹配项: filename=idman636build5.exe idman636buil

我需要以类似filename=filename.Extension的格式提取文件名。 我有一个正则表达式模式,但当我测试它时,它只返回1个匹配,而不是2个。 这种模式有什么问题

模式:

测试字符串::

idman636build5.exe?b=1&filename=idman636build5.exe idman636build5.exe?b=1&filename=idman636build5.exe

预期匹配项:

filename=idman636build5.exe idman636build5.exe?b=1&filename=idman636build5.exe

filename=idman636build5.exe

正则表达式引擎是.NET的默认引擎。我不知道它的名字


最后一个.+将与第二个匹配,因为它表示匹配任何内容

我猜你想考虑文件名的结尾是什么?或&字符。更改表达式以匹配任意字符:

(?<=filename=)[^&?]+

您使用的是什么正则表达式工具或语言?您预期的结果是什么?哦,我看到您有一个指向正则表达式101的链接,专门针对这个问题。谢谢,这很方便。根据,您还需要将相关信息嵌入帖子本身。一个原因是,如果链接不可用,或更改其内容,SO帖子对未来的访问者将变得毫无用处,并降低SO的质量。另一个是,不应该要求任何人仅仅为了理解一个问题/答案而在网络上跳转。请编辑以包含来自外部链接的信息。您的代码、结果和预期结果都应该嵌入。在这种情况下,解决方案似乎适用于所有风格的正则表达式。如果您在.NET中做了大量工作,它可能是一个更好的测试站点,因为它特定于.NET正则表达式,并且在某些情况下可能更准确。这里还有一些很好的参考资料,突出了.NET的正则表达式的一些独特特性:和。如果您想匹配示例数据中的文件名,可以使用?这里有一个指向on regex Storm的链接,这是一个针对.NET的在线正则表达式测试程序
(?<=filename=)[^&?]+