格式化文字,"数字名称"像:
"12232 letter" but not this one: "12232 12"
这个表达式适用于两者:
\d{3,}\s+\D'
但它是否还有其他空间停止工作:
re.search('\d{3,}\s+\D','12232 1111').group()
如果返回:
'12232 '
作为比赛。
答案 0 :(得分:2)
虽然你的问题还不清楚,但从标题中你可能想要使用一个包含字母范围[a-zA-Z]+
的集合
>>> re.search(r"[a-zA-Z]+", "12232 letter").group()
'letter'
..或尝试使用()
明确分组,然后获取组的编号
>>> re.search(r"(\d{3,})\s+\D",'12232 1111').group(1)
'12232'
否则你可以使用.findall
,它将返回每次找到的运行
>>> re.findall(r"\d+", '12232 1111')
['12232', '1111']
最后,网站https://laravel.com/api/5.4/Illuminate/Database/Eloquent/Builder.html#method_chunkById非常适合帮助构建,测试和共享正则表达式。
答案 1 :(得分:2)
您的要求不清楚。 我猜这个要求是:
\ d {3,} \ S * [A-ZA-Z] +
答案 2 :(得分:1)
问题是\D
还匹配与\s
匹配的所有字符。您需要从\s
中减去\D
模式。通过将\D
转换为等效的否定字符类[^\d]
并将\s
添加到其中,可以轻松实现:[^\d\s]
。
使用
m = re.search('\d{3,}\s+[^\d\s]','12232 1111')
if m:
print(m.group())
else:
print("No match!")