Python 什么是正则表达式,它接受除数字或正、负数字以外的任何内容?

Python 什么是正则表达式,它接受除数字或正、负数字以外的任何内容?,python,regex,Python,Regex,它不应允许: 1 2+ -3 4- +5 它应该允许除此之外的任何内容,例如:1%,^1等。它应该允许。我试着这样做: ^[%!@#$^&*()]\d[%!@#$^&*()]$ 但是在两者之间迷失了方向。我该怎么做 更新:^(?:\d[^-+]|[^-+]\d)$是我所需要的。如果您只想接受非数字使用^\d+$如果您只想接受非数字使用^\d+$请尝试以下方法: """ test with 1, 2+, -3, 4-, +5""" a = "1-" b = re.search(

它不应允许:

1
2+
-3
4-
+5
它应该允许除此之外的任何内容,例如:1%,^1等。它应该允许。我试着这样做:

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


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

如果您只想接受非数字使用
^\d+$
如果您只想接受非数字使用
^\d+$
请尝试以下方法:

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

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

^(?:\d[^-+]|[^-+]\d)$
它将2字符字符串与1位数字匹配,而另一个符号不能是
-
+

模式

  • ^
    -字符串的开头
  • (?:\d[^-+]|[^-+]\d)
    -或者
    • \d[^-+]
      -除
      -
      +
    • |
      -或
    • [^-+]\d
      -除
      -
      +
      或数字以外的任何字符
  • $
    -字符串结尾
请参阅您可以使用的

^(?:\d[^-+]|[^-+]\d)$
它将2字符字符串与1位数字匹配,而另一个符号不能是
-
+

模式

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

如果需要将2字符字符串与1位数字匹配,而其他符号不能是
-
+
,请参见尝试
^(?:\d[^-+]|[^-+]\d)$
。要匹配除数字+符号以外的任何类型的字符串,请使用
^(?(?:\d[-+].[-+]\d)$)。+
不使用解决方案更新问题。将解决方案作为答案写下来并接受它。@WiktorStribiżew您似乎可以将您的评论作为答案发布。ndn IMHO您应该回滚编辑。@ThomasAyoub感谢ping。如果需要将2字符字符串与1位数字匹配,而其他符号不能是
-
+
,请尝试
^(?:\d[^-+]|[^-+]\d)$
。要匹配除数字+符号以外的任何类型的字符串,请使用
^(?(?:\d[-+].[-+]\d)$)。+
不使用解决方案更新问题。将解决方案作为答案写下来并接受它。@WiktorStribiżew您似乎可以将您的评论作为答案发布。NDNIMHO你应该回滚编辑。@ ToMasaayoub感谢Ping。如果我做1%,它应该允许,但它不是。如果我做1%,它应该允许,但它不是。娜塔莎,请考虑并考虑。请修改您以前的问题,并在那里做相应的工作。娜塔莎,请考虑并考虑。请修改您之前的问题,并在此处进行相应操作。