我使用regex在Python中检测字符串中从“0”到“999”的数字。你知道吗
import re
test_string = "b\'[<span id=\"prl\">114 893</span>]\'"
working_pattern = "\d{1,3}\s\d{3}"
non_working_pattern = "\d{1,3}(\s\d{3}){0,2}"
wk_ptrn = re.findall(working_pattern, test_string)
non_wk_ptrn = re.findall(non_working_pattern, test_string)
print(wk_ptrn)
print(non_wk_ptrn)
结果是:
print(wk_ptrn)
显示:['114 893']
print(non_wk_ptrn)
显示:[' 893']
(第一个数字前有空格)
非工作模式是"\d{1,3}(\s\d{3}){0,2}"
\d{1,3} :
检测1到3位数字[0到999]
\s\d{3} :
检测任何后跟3位数字的空格[“000”到“999”]
{0,2} :
是一个量词,因此我可以检测"0" (quantifier = 0)
到"999[ 999][ 999]" (quantifier = 2)
。你知道吗
我不明白为什么"\d{1,3}(\s\d{3}){0,2}
“不起作用。
你能帮我找出错误吗?你知道吗
谢谢你。当做。你知道吗
你就快到了,但你应该改变它如下:
?:
使组不被捕获,这样^{相关问题 更多 >
编程相关推荐