我正在尝试构建一个表达式,该表达式将所有文字 EXCLUDING 文字与前缀my ($stdout,$stderr,$exit) = $ssh->cmd($cmd1);
...
($stdout,$stderr,$exit) = $ssh->cmd($cmd2);
...
($stdout,$stderr,$exit) = $ssh->cmd($cmd3);
...
sleep(30);
($stdout,$stderr,$exit) = $ssh->cmd($cmd5);
...
($stdout,$stderr,$exit) = $ssh->cmd($cmd6);
...
AND 后缀'abc'
匹配(仅限文字)前缀 OR ,后缀可以。)
我尝试过以下方法:
'def'
,但它不匹配只有一个标准的文本(即abc.xxx失败,以及xxx.pdf,尽管它们应该通过)
我理解答案与'看后面'有关但我仍然不太确定如何实现这种行为
我也尝试过以下方法:
^(?!([a][b][c]])).*(?!([d][e][f])$)
,但又一次,没有运气
答案 0 :(得分:3)
^((abc.*\.(?!def))|((?!abc).*\.def))$
我认为可以有一个更简单的解决方案,但是这个解决方案可以按照您的需要运行。
[a][b][c]
可以简化为abc
,同样适用于def
。
模式的第一部分与abc.*\.
匹配,最后没有def
。
第二部分与.*\.def
匹配,不带前缀abc
。
以下是模式的直观表示:
答案 1 :(得分:2)
保持简单,并将其组合成一个预测,以检查两种情况:
^(?!abc.*def$).*