玩蛇网提供最新Python编程技术信息以及Python资源下载!

python正则表达式中函数findall用法?

1.我的目标是匹配一个地址 ex:123 xuancheng anhui China
2.我给的正则表达式为:r'd+(s+[a-zA-Z]+)+s*'
代码如下:

pattern = r'\d+(\s+[a-zA-Z]+)+\s*'
basestr = '123  xuancheng china '
m1 = re.findall(pattern, basestr)
if m1 is not None:
    print m1
得到的结果为 [' china']

这个是以圆括号的内容进行匹配的,我想要配置的是整句话,如何改造呢?
除了以下这个用法
pattern_2 = r'(d+(s+[a-zA-Z]+)+s*)'
返回
[('123 xuancheng china ', ' china')]
使用search 函数能得到想要的结果
m2 = re.search(pattern, basestr)
print m2.group()
得到:
123 xuancheng china

r'\d+(?:\s+[a-zA-Z]+)+\s*'

简单粗暴是这样的,请自己再修改。

再修改一下是这样的

提供的新的字符串也可以。

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd14031.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月23日 - 11时14分27秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules