You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Watson无法识别input.text.find("(\d)\1+")正则表达式?

解决重复数字识别失败的问题

你现在的问题出在**str.find()方法不支持正则表达式匹配**上!它只能查找固定的字符串内容,你传的"(\d)\1+"会被当成普通文本去搜索,而你的输入里显然没有这个字符串,所以自然识别不到重复数字。

要实现识别重复数字的需求,得用Python专门处理正则表达式的re模块,下面给你两种常用的实现方式:

方式1:查找第一个出现的重复数字

适合你只需要找到第一个重复数字的场景,代码示例:

import re

input_text = "112345"
# 用r前缀定义原始正则字符串,避免转义字符问题
match_result = re.search(r'(\d)\1+', input_text)

if match_result:
    # group(1)获取捕获的重复数字
    repeated_digit = match_result.group(1)
    print(f"识别到重复的数字:{repeated_digit}")
else:
    print("未找到重复的数字")

运行这段代码,输入"112345"时,会输出识别到重复的数字:1,完全符合你的需求。

方式2:查找所有重复的数字序列

如果需要找出文本中所有重复的数字组,比如输入"11223345"时要得到1、2、3,可以用re.findall():

import re

input_text = "11223345"
all_repeated_digits = re.findall(r'(\d)\1+', input_text)
print(f"所有重复的数字:{all_repeated_digits}")

运行后会输出所有重复的数字:['1', '2', '3']

最后再提醒下:正则字符串一定要加r前缀,不然\1会被当成转义字符处理,导致正则失效哦!

内容的提问来源于stack exchange,提问作者Ele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:57:49