>  Q&A  >  본문

关于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

伊谢尔伦伊谢尔伦2765일 전1129

모든 응답(2)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:21:31

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

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-18 10:21:31

    간단하고 투박한 내용이니 직접 수정해 보세요.

    다시 수정하면 이런 모습이 됩니다

    제공된 새로운 문자열도 작동합니다.

    회신하다
    0
  • 취소회신하다