重写正则表达式数字过滤 Python
Re-write regex expression number filtering Python
给定一个像 'hello 0796XXXXXX. TODAY IS UR LUCKY DAY£500 Cash' 这样的字符串,我使用以下正则表达式
re.findall(r"(\b07\d*|\b08\d*|\b09\d*)", t)
接收07开头的号码| 08 | 09 后跟 0 个或多个数字。 ['0796']
是结果。
我该如何重写代码才能使 \b
和 \d*
不重复?例如,我尝试了 re.findall(r"\b(07|08|09)\d*)", t)
,但不幸的是它不起作用,只有 returns [07]
.
谢谢
regex = r"(07|08|09)\d*"
re.findall(regex, text)
避免括号,将同样重复的 0 放在一边:
re.findall(r"\b0[789]\d*", t)
给定一个像 'hello 0796XXXXXX. TODAY IS UR LUCKY DAY£500 Cash' 这样的字符串,我使用以下正则表达式
re.findall(r"(\b07\d*|\b08\d*|\b09\d*)", t)
接收07开头的号码| 08 | 09 后跟 0 个或多个数字。 ['0796']
是结果。
我该如何重写代码才能使 \b
和 \d*
不重复?例如,我尝试了 re.findall(r"\b(07|08|09)\d*)", t)
,但不幸的是它不起作用,只有 returns [07]
.
谢谢
regex = r"(07|08|09)\d*"
re.findall(regex, text)
避免括号,将同样重复的 0 放在一边:
re.findall(r"\b0[789]\d*", t)