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".