正则表达式:匹配缺少 word1 的行,但它们包含 word2
Regex: match lines missing word1 except they include word2
我正在寻找与某些 URL 匹配的正则表达式:
我想匹配任何 URL,除非它们包含单词 "Koeln" 或包含单词 "Karneval"(无论它们是否包含 Koeln)。
例子:
1) http://www.news.com/Report-Deutschland/Panorama/Deutschland/story.html
2) http://www.news.com/Koeln/Karneval/story.html
3) http://www.news.com/Koeln/Koelnaktuell/story.html
1) 和 2) 应该匹配。 1) 因为它不包括 "Koeln" 和 2) 因为它包括 "Karneval"
3) 不应匹配,因为它包含 "Koeln" 但不包含 "Karneval"
我使用 positive/negative 前瞻性尝试了许多不同的正则表达式,但到目前为止 none 它们都有效。
我计划在 PHP 中使用 preg 实现正则表达式。
不确定这是否是最佳方法,但您可以尝试一下,看看它是否适合您:
(http://.*?/Karneval.*$|http://www\.news\.com(?!/Koeln).*$)
我基本上只是在做两个表达式……一个匹配 Karneval
,一个在 www.news.com
.
之后找不到 /Koeln
这是您可以尝试的演示:
Regex101 Demo
希望这对您有用,或者至少为您指明了正确的方向。
我正在寻找与某些 URL 匹配的正则表达式:
我想匹配任何 URL,除非它们包含单词 "Koeln" 或包含单词 "Karneval"(无论它们是否包含 Koeln)。
例子:
1) http://www.news.com/Report-Deutschland/Panorama/Deutschland/story.html
2) http://www.news.com/Koeln/Karneval/story.html
3) http://www.news.com/Koeln/Koelnaktuell/story.html
1) 和 2) 应该匹配。 1) 因为它不包括 "Koeln" 和 2) 因为它包括 "Karneval" 3) 不应匹配,因为它包含 "Koeln" 但不包含 "Karneval"
我使用 positive/negative 前瞻性尝试了许多不同的正则表达式,但到目前为止 none 它们都有效。
我计划在 PHP 中使用 preg 实现正则表达式。
不确定这是否是最佳方法,但您可以尝试一下,看看它是否适合您:
(http://.*?/Karneval.*$|http://www\.news\.com(?!/Koeln).*$)
我基本上只是在做两个表达式……一个匹配 Karneval
,一个在 www.news.com
.
/Koeln
这是您可以尝试的演示: Regex101 Demo
希望这对您有用,或者至少为您指明了正确的方向。