gpt4 book ai didi

regex - 使用 Python 3 在输入中搜索模式时出错

转载 作者:行者123 更新时间:2023-12-02 03:04:40 24 4
gpt4 key购买 nike

我试图找出输入数字中形式为 1[0]1 的模式的数量。模式是,两个 1 之间可以有任意数量的零,例如 89310001898。

我使用正则表达式 (re) 在 Python 3.5 中编写了一段代码来执行它,如下所示:

>>> import re

>>> input1 = 3787381001
>>> pattern = re.compile('[10*1]')

>>> pattern.search(input1)

但这会引发以下错误:

Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
pattern.match(input1)
TypeError: expected string or bytes-like object

是否有一些解决方法可以清楚地识别输入数字中是否存在上述模式 1[0]1

最佳答案

[10*1]模式匹配等于 1 的单个字符, 0* .此外,正则表达式引擎仅在文本中查找匹配项,它需要一个字符串作为输入参数。

移除方括号并将字符串传递给 re ,不是整数。

import re
input1 = '3787381001'
pattern = re.compile('10*1')
m = pattern.search(input1)
if m:
print(m.group())

参见 Python demo

注意:如果您需要多次出现,重叠匹配(例如,如果您需要从 1001 中获取 1000123100100013,则需要使用 re.findall(r'(?=(10*1))', input1) .

关于regex - 使用 Python 3 在输入中搜索模式时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43584425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com