python正则表达式匹配中文

今天遇到一个问题,想用正则表达式匹配一段文本:

比如:几个、几样、几招、几种

1个,2种,3样……20个等

以及一个,二种,三样……二十样等

起初是这样写的,一直不对。。

[plain] view plain copy print ?
  1. 几[种样款个类招]+?  
  2. [0-9]+[种样款个类招]+?  
  3. [一二三四五六七八九十]+[种样款个类招]+?  
几[种样款个类招]+?
[0-9]+[种样款个类招]+?
[一二三四五六七八九十]+[种样款个类招]+?

出现的问题是,可以匹配到几个、几样、几招、几种。。不过也有时候是几乎或单字几,但不是所有以几开头的都能匹配。

其他也是这种情况。

后来仔细查了下python正则表达式用法,参考了http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

这个网址里面关于分组的介绍,终于搞定。正则表达式如下:

[plain] view plain copy print ?
  1. 几(种|样|款|类|招)  
  2. [0-9]+(种|样|款|类|招)  
  3. (一|二|三|四|五|六|七|八|九|十)+(种|样|款|类|招)  

你可能感兴趣的:(正则表达式)