【问题标题】:Python 3 Regex 8 numbers onlyPython 3 Regex 仅 8 个数字
【发布时间】:2018-06-07 00:14:16
【问题描述】:

我正在尝试使用正则表达式来验证输入。它应该接受 8 位且仅 8 位数字(无空格字母等)。例如:

88884444, 55551234

我试过这个,但如果我输入超过 8 个数字,它似乎可以接受(如果我在之后添加字母,它也接受) 谢谢

r'^[0-9]{8,8}'

【问题讨论】:

  • 你的python代码在哪里?
  • 使用开始/结束锚点 (^......$)。
  • 欢迎来到 Stack Overflow。这不是一个代码/SQL/正则表达式编写服务,您可以在其中发布您的要求和选择的语言列表,并且代码猴子会为您生成代码。我们非常乐意提供帮助,但我们希望您首先努力自己解决问题。完成后,您可以解释您遇到的问题,包括您工作的相关部分,并提出具体问题,我们会尽力提供帮助。祝你好运。
  • 寒心,忘记粘贴代码
  • 仍然没有足够的代码。你是怎么用的?

标签: python regex


【解决方案1】:

您当前的正则表达式 wiz r'^[0-9]{8,8}' 存在问题:

  1. {8,8} 你想要的最小和最大长度是 8,所以你可以像 {8} 一样精确到 8,不需要有范围
  2. 当前的正则表达式有条件检查字符串的开头,但您没有定义字符串的结尾,可以使用符号 $ 定义,这允许逗号分隔的数字,以避免您可以简单地在末尾添加 $您当前的正则表达式,例如r'^[0-9]{8}$',它将解决问题。但是,您仍然可以使用\d 优化正则表达式,而不是提供[0-9] 的范围,因为您正在使用所有数字,因此正则表达式可以进一步简化为"^[0-9]{8}$",下面还提供了示例代码。

代码:

import re

in_str = "48848484"

if re.match(pattern="^\d{8}$", string=in_str): print("number is correct")
else: print("wrong phone number")

【讨论】:

    猜你喜欢
    • 2019-02-13
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多