在正则表达式中排除特定名称

时间:2018-02-19 15:56:56

标签: regex python-3.x python-2.7 regex-negation regex-lookarounds

我有多个名称为app1.6.11app1.7.12app1.8.34test1test2的目录。

我想匹配以app开头的所有目录的正则表达式,并排除app1.8.34

我试过了:

^(app.+)[^(app1.8.34)]

1 个答案:

答案 0 :(得分:0)

如果你只想匹配点,你应该将它\.转义,否则它会与任何角色匹配。

您可以使用否定前瞻:

^app(?!1\.8\.34).+$

那就匹配

^          # The beginning of the string
app        # Match app
(?!        # Negative lookahead that asserts what follows is not
  1\.8\.34 # Match 1.8.34
)          # Close negative lookahead
.+         # Match any character one or more times
$          # End of the string