我有一个问题,但我似乎无法弄清楚。我一直在参考这篇文章: 正则表达式匹配不包含单词的行?
如果 URL 不包含 2 个破折号,我正在尝试匹配 URL:
匹配 =/test-doc.html
不匹配 =/test-doc--help.html
我有这个可以匹配和不匹配的:/(?<a>.(?!\-\-))*\.html
但是组“a”只得到 1 个字母,而所有的东西都回过头来。我希望组“a”成为“test-doc”,而不仅仅是最后的“c”。
任何建议,将不胜感激。
我有一个问题,但我似乎无法弄清楚。我一直在参考这篇文章: 正则表达式匹配不包含单词的行?
如果 URL 不包含 2 个破折号,我正在尝试匹配 URL:
匹配 =/test-doc.html
不匹配 =/test-doc--help.html
我有这个可以匹配和不匹配的:/(?<a>.(?!\-\-))*\.html
但是组“a”只得到 1 个字母,而所有的东西都回过头来。我希望组“a”成为“test-doc”,而不仅仅是最后的“c”。
任何建议,将不胜感激。
尝试这样的模式:
/(?<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 // ""