regex - 用于排除多个字符串的正则表达式
问题描述
我需要一个正则表达式,它从匹配中排除具有给定字符串的行。这是我到目前为止发现的:
正则表达式:
(?<!\/)\shttps
测试文本:
string.pdf https
string.html https
stringEndingWithSlash/ https
stringEndingWithoutSlash https
这仅不包括第 3 行。但我需要表达式只匹配不以 .pdf、.html 或斜杠结尾的字符串的行。所以只有示例的最后一行应该匹配。如何使用逻辑 | 还是这里?还是有其他解决方案?谢谢你 - 一切顺利,萨莎
解决方案
以下模式似乎有效:
^\w+(?!\.pdf|\.html|\/) https$
演示
这匹配一些初始单词,该单词不以.pdf
,或正斜杠结尾,.html
然后是空格和https
。它使用负前瞻来执行此操作。虽然可能存在不使用环视的解决方案,但它们似乎是实现所需逻辑的最简单方法。
推荐阅读
- css - 如何使用 CSS 水平对齐表格中的垂直文本?
- flutter - WebSocketChannelException:SocketException:操作系统错误:操作超时,errno = 60,地址 = echo.websocket.org,端口 = 52365
- python - 如何返回类参数列表?
- json - 如何将 ArrayList 项传递给 Flutter 中的 http 请求(post)正文?
- rust - 为什么我们必须借用类型而不是变量的名称
- javascript - 如何制作下拉菜单
- asp.net-mvc - 值不能为空。ASP 中的参数名称 DropdownList。网络核心
- azure - 从 azure apim 导出 OAS 中的安全性和策略
- python - 仅当间隙小于 N nans 时才填充 pandas df 中的 nan 间隙
- typescript - 在 TypeScript 中从参数推断通用类型的回调