python 正则表达式如何提取中文数字?

做python爬虫的时候,遇到需要提取中文数字的情况,如下
图片描述

然后我现在的方法是:(content1是文本内容)

    r1 = re.compile(u'[一|二|三|四|五|六|七|八|九|十]标段')
    r2 = r1.findall(content1)
    r3 = re.split(r1, content1)#后面会切割组字典

但问题是当遇到:
图片描述

就是十一、十二这样是匹配不到的,因为前面有‘一’在了
所有有没有更好的方法把这个标段匹配出来?

阅读 18k
4 个回答

可以试一下:
r1 = re.compile(u'[一二三四五六七八九十]{1,}标段');其中"{n,}" 重复匹配前一个n次或更多次.
正则表达式参考连接:http://www.cnblogs.com/China3...

[一|二|三|四|五|六|七|八|九|十].*标段

[一二三四五六七八九十]

不用加一个竖线|,那只会让正则多匹配竖线

[一|二|三|四|五|六|七|八|九|十]+标段

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题