什么是接受除数字或正数,负数之外的任何东西的正则表达式?

时间:2016-12-13 14:52:59

标签: python regex

不应该允许:

1
2+
-3
4-
+5

它应该允许除此之外的任何东西:1%,^ 1等它应该允许。我试图这样做:

^[%!@#$^&*()]\d[%!@#$^&*()]$
但是在两者之间迷茫。我该怎么做?

更新: ^(?:\d[^-+]|[^-+]\d)$是我需要的。

3 个答案:

答案 0 :(得分:1)

如果您只想接受非数字使用^\D+$

答案 1 :(得分:1)

您可以使用

^(?:\d[^-+]|[^-+]\d)$

它会匹配2个字符串的1个数字,而另一个符号不能是-+

<强>模式

  • ^ - 字符串开头
  • (?:\d[^-+]|[^-+]\d) - 要么
    • \d[^-+] - 除-+
    • 以外的数字和任何字符
    • | - 或
    • [^-+]\d - -+以外的任何字符或数字
  • $ - 字符串结尾

请参阅regex demo

答案 2 :(得分:0)

试试这个:

""" test with 1, 2+, -3, 4-, +5"""
a = "1-"
b = re.search("^\D+$",a)
if b:
   print b.group(0)