1

我有一个问题,但我似乎无法弄清楚。我一直在参考这篇文章: 正则表达式匹配不包含单词的行?

如果 URL 不包含 2 个破折号,我正在尝试匹配 URL:

匹配 =/test-doc.html

不匹配 =/test-doc--help.html

我有这个可以匹配和不匹配的:/(?<a>.(?!\-\-))*\.html

但是组“a”只得到 1 个字母,而所有的东西都回过头来。我希望组“a”成为“test-doc”,而不仅仅是最后的“c”。

任何建议,将不胜感激。

4

2 回答 2

2

尝试这样的模式:

/(?<a>(?!.*--).*)\.html

这将匹配一个文字/,后跟零个任何字符,在 group 中捕获a(但当该序列不包含文字--时),然后是文字.html

例如:

Dim pattern As String = "/(?<a>(?!.*--).*).html"
Regex.Match("/test-doc-help.html", pattern).Groups("a").Value  // "test-doc-help"
Regex.Match("/test-doc--help.html", pattern).Groups("a").Value // ""
于 2013-09-21T00:02:10.187 回答
0

你可以在这个网站上试试你的表达方式

http://gskinner.com/RegExr/

而且我认为你应该使用这个表达

"\/.*.html"
于 2013-09-21T03:41:33.153 回答