Python 正则re匹配中文、英式数字


#coding:utf-8
import re

s = u''' 或多或少的好好读书电锯惊魂20202 和水电费后是否会时候1212没收到风10.12海大富的是粉红色的和办法的1244525.000
会发生的粉红色的合法化好0.01给对方会感受到发给还是干活0001还打飞机大嫁风尚蝴蝶结个房间小电风扇豆腐干很多
事123,450,000.000好盛大黑色的十一万八千四百三十二的还好丁世德1亿11万2200海大富会闪烁二十万零三,零点零一,一九八四'''


# 匹配中的 ‘u’不可少


pattern = re.compile(ur'[一二两三四五六七八九零十百千万亿点]+|(?:d+[,.十百千万亿]*){1,}')
all = pattern.findall(s)
for i in all:
    print i

输出结果:

20202
1212
10.12
1244525.000
0.01
0001
123,450,000.000
十一万八千四百三十二
11万2200
二十万零三
零点零一
一九八四


重点
1、匹配中的 'u'是关键
2、匹配数字的(?:d+[,.]*){1,} 中的(?:)属于非捕获型括号
===

 (?: pattern)是非捕获型括号  

匹配pattern,但不捕获匹配结果。
(pattern )是捕获型括号。 匹配pattern,匹配pattern并捕获结果,自动获取组号
(?<name> pattern)  匹配pattern,  匹配pattern并捕获结果,设置name为组名 

参考:http://blog.csdn.net/duke_knight/article/details/70160338

http://www.cnblogs.com/tina-python/p/5508402.html

原文地址:https://www.cnblogs.com/vhills/p/7736077.html