re

python中的re库用于正则化,相当于一个过滤器,可以过滤掉不需要的字符,得到自己想要的。

import re
import jieba
rule = re.compile(r"^[\u4e00-\u9fa5]+$")
text='我是卖报的小行家哈哈哈,happy new year!'
words=[]
seg = jieba.posseg.cut(text)
for s in seg:
    if len(s.word)>1 and re.search(rule, s.word) and\
    s.flag in ["a", "v", "x", "n", "an", "vn", "nz", "nt", "nr"]:
        words.append(s.word)
print(words)

  

运行结果是:

['卖报', '行家']

 

其中,\u4e00-\u9fa5表示匹配中文字符,\u4e00是在编码中中文字符开始的值,\u9fa5是中文字符结束的值。

jieba.posseg.cut(text) 可以对段落进行词的划分,划分结果是有两个属性,一个是词word,一个是词性flag。


re.split(r'第.{1,3}章\n', text)[1:]

表示按照章节划分text,其中.{1,3}表示匹配除换行意外的字符1到3次,总的来说可以匹配"第□□□章\n".

 

posted @ 2019-10-26 11:17  熊猫blue  阅读(386)  评论(0编辑  收藏  举报