【问题标题】:How to check whether or not a string consists of a single repeating digit using Python如何使用 Python 检查字符串是否由单个重复数字组成
【发布时间】:2021-02-16 23:46:27
【问题描述】:

代码:

def 重复数字(数字): 模式=设置(digits.lstrip(“0”)) 打印(图案)

if len(pattern) > 1:
    return(False)

if len(pattern) == 1:
  return(True)

重复数字(“0111”) ''真的'' 重复数字(“0112”) ''假''

【问题讨论】:

  • len(set(digits.lstrip("0"))) == 1 比使用正则表达式 IMO 更容易。
  • @Sara 这是学习正则表达式的练习吗?
  • 这应该可以回答您的问题:Regular expression to match any character being repeated more than 10 times 您只需将其与“零次或多次数字 0”的正则表达式结合起来,这应该很容易找到。
  • 这似乎是一个任务分配。查看正则表达式:docs.python.org/3/library/re.html 特别是在:0* 用于在\d 处加载零@ 在$ 处为 iline 的结尾处用于分组,用于反向引用(例如@987654323 @)
  • 我可以用不同的方式解决这个问题,但我的问题是我不知道如何用上面提到的代码写下来。

标签: python duplicates digits leading-zero


【解决方案1】:

使用正则表达式:^0*([1-9])\1*$

解释:

  • ^ : 从字符串开头开始搜索
  • 0* :搜索任何重复的 0
  • ([1-9]):匹配0以外的数字并记住它
  • \1* : 匹配之前匹配数字的一个或多个实例
  • $ : 字符串结束

锚记号 ^ 和 $ 允许清除重复出现的数字的多次出现。 Python代码:

import re
def repeatingDigits(digits):
    pattern = r"^0*([1-9])\1*$"
    return re.search(pattern, digits)

【讨论】:

  • 太棒了!我对其进行了更改:^0*(([1-9]))\1*$
  • @Sara - 太棒了!我看到你是新来的。如果对您有帮助,请考虑将答案标记为已接受。但这不是强制性的。
  • 是的,我是新手,我不知道如何标记最佳答案。感谢您的解释。最好的,
猜你喜欢
  • 1970-01-01
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多