排除前缀和后缀的正则表达式
Regex expression to exclude both prefix and suffix
我正在尝试构建一个表达式,它将匹配所有文本 EXCLUDING 带有前缀 'abc'
AND 后缀 'def'
(只有前缀或后缀的文本)。
我试过以下方法:
^(?!([a][b][c]])).*(?!([d][e][f])$)
,但它不匹配只有一个条件的文本(即 abc.xxx 失败,以及 xxx.pdf,尽管它们应该通过)
我知道答案与 'look behind' 有关,但我仍然不太确定如何实现此行为
我还尝试了以下方法:
^(?<!([a][b][c])).*(?!([d][e][f])$)
,但同样,运气不佳
^((abc.*\.(?!def))|((?!abc).*\.def))$
我认为可以有一个更简单的解决方案,但这个解决方案会如您所愿。
[a][b][c]
可以简化为abc
,def
也是如此。
模式的第一部分匹配 abc.*\.
而末尾没有 def
。
第二部分匹配没有前缀 abc
.
的 .*\.def
这是模式的直观表示:
保持简单并将其组合成一个前瞻性检查两个条件:
^(?!abc.*def$).*
我正在尝试构建一个表达式,它将匹配所有文本 EXCLUDING 带有前缀 'abc'
AND 后缀 'def'
(只有前缀或后缀的文本)。
我试过以下方法:
^(?!([a][b][c]])).*(?!([d][e][f])$)
,但它不匹配只有一个条件的文本(即 abc.xxx 失败,以及 xxx.pdf,尽管它们应该通过)
我知道答案与 'look behind' 有关,但我仍然不太确定如何实现此行为
我还尝试了以下方法:
^(?<!([a][b][c])).*(?!([d][e][f])$)
,但同样,运气不佳
^((abc.*\.(?!def))|((?!abc).*\.def))$
我认为可以有一个更简单的解决方案,但这个解决方案会如您所愿。
[a][b][c]
可以简化为abc
,def
也是如此。
模式的第一部分匹配 abc.*\.
而末尾没有 def
。
第二部分匹配没有前缀 abc
.
.*\.def
这是模式的直观表示:
保持简单并将其组合成一个前瞻性检查两个条件:
^(?!abc.*def$).*