正则表达式需要匹配单词,但排除任何顺序的其他单词

问题描述 投票:0回答:1

我有以下几行组合: -

WAN-bridge
bridge-WAN
WAN-VLAN
ether1-WAN        <-----
ether2-hello
ether2-wan2        <-----
WAN-BRIDGE
wan-bridge
bridge-wan
vlan918-WAN
VLAN-wan
wan-ether1        <-----
wan-Bridge

我需要一个PCRE正则表达式来匹配任何包含'wan'的行,但是不管情况如何都排除了'vlan'和'bridge'这两个词。

我已标记了我希望匹配的行。

我尝试了很多变化,但没有一个有效。

任何帮助,将不胜感激。

regex pcre
1个回答
1
投票

你可以用它

^(?=.*wan)(?!.*(vlan|bridge)).*$
  • ^ - 字符串的开头。
  • (?=.*wan) - 积极的向前看。 wan的条件必须符合。
  • (?!.*(vlan|bridge)) - 负向前瞻。 vlan and bridge的条件不得排成一线。
  • .* - 匹配除新线以外的任何东西。
  • $ - 字符串的结尾。

Demo

© www.soinside.com 2019 - 2024. All rights reserved.