Python正则表达式匹配后的字符不相等

时间:2017-05-17 21:45:49

标签: python regex

我试图匹配一个字符串,如果它以'123'开头,但只有紧接着的后续字符不是数字。

例如,这些匹配:

  • '123'
  • '123.4'
  • '123A'

但这些不匹配:

  • '124'
  • '1234'
  • '1235.3'

如果我只关心不能以数字结尾的字符串,我可以使用:

'^123(?!.*\d$)'

然而,这不是我想要的。我正在寻找紧跟在我的匹配字符串后面的字符是不是数字。

2 个答案:

答案 0 :(得分:1)

  

我正在寻找紧跟在我的匹配字符串后面的字符是不是数字。

您可以使用此正则表达式:

^123(?!\d)
如果(?!\d)之后的下一个字符是数字,那么

123是否定前瞻会导致失败。

RegEx Demo

答案 1 :(得分:1)

anubhava的答案是正确的,你也可以使用我认为更简单的方法:

^123\D{1}

\D匹配任何非数字字符。 您可以用您选择的任何量词替换{1}

也许你想要捕获完整的字符串,在这种情况下你可以修改:

^123\D{1}.*

Demo