首页 > 解决方案 > 用于排除多个字符串的正则表达式

问题描述

我需要一个正则表达式,它从匹配中排除具有给定字符串的行。这是我到目前为止发现的:

https://regexr.com/42j9r

正则表达式:

(?<!\/)\shttps

测试文本:

string.pdf https
string.html https
stringEndingWithSlash/ https
stringEndingWithoutSlash https

这仅不包括第 3 行。但我需要表达式只匹配不以 .pdf、.html 或斜杠结尾的字符串的行。所以只有示例的最后一行应该匹配。如何使用逻辑 | 还是这里?还是有其他解决方案?谢谢你 - 一切顺利,萨莎

标签: regexregex-negation

解决方案


以下模式似乎有效:

^\w+(?!\.pdf|\.html|\/) https$

演示

这匹配一些初始单词,该单词不.pdf,或正斜杠结尾,.html然后是空格和https。它使用负前瞻来执行此操作。虽然可能存在不使用环视的解决方案,但它们似乎是实现所需逻辑的最简单方法。


推荐阅读