,Ray Balwierczak,2017年4月11日,895 Forest Hill Rd,Apalachin,NY,13732,y ,,
我想从线上只选择13732。我想出了这个正则表达式
(\ d)(\ S * \ d +)*(\,Y ,,)
但它也选择了,y ,,如果我从正则表达式中删除那部分,正则表达式也会对日期有效。请帮助我。
答案 0 :(得分:2)
通常,如果您希望匹配某些内容而不捕获它,请使用零长度环视(前瞻或后瞻)。在您的情况下,您可以使用前瞻:
(\d)(\s*\d+)*(?=\,y,,)
语法(?=<stuff>)
表示&#34;后跟<stuff>
,而不匹配&#34;。
有关外观的更多信息,请参阅this tutorial。
答案 1 :(得分:0)
正则表达式: \D*(\d{5})\D*
说明:匹配两侧零个或多个非数字包围的5位数字。然后,您可以提取包含匹配项的组。
python中的代码:
import re
string = ",Ray Balwierczak,4/11/2017,,895 Forest Hill Rd,Apalachin,NY,13732,y,,"
search = re.search("\D*(\d{5})\D*", string)
print search.group(1)
<强>输出:强> 13732