正则表达式因为平时用的不多,每次要用的时候都要google去找怎么用。所以干脆把常用的记录下来,这样以后要用的时候可以快速找到。更多的可以参考这个视频:python正则表达式
通常python的正则表达式分为这两步:
第一步,把想要的pattern编译成re pattern对象
pattern = re.compile()
: 将字符串形式的表达式编译成pattern对象
第二步,使用re方法,match,search,split,finditer,sub,subn,findall
下面记录下几个在text analysis
中常用的python的正则表达式。
1: CountVectorizer
中的 re.compile(r"(?u)\b\w\w+\b")
,用来搜索text文档中所有的单词,并且单词长度大于1(\w+)
。
token_pattern = re.compile(r"(?u)\b\w\w+\b")
token_pattern.findall("this is a good example")
Out[69]: ['this', 'is', 'good', 'example']
2: CountVectorizer
中的 re.compile(r"(?u)\b\w+\b")
,用来搜索text文档中所有的单词,包括长度为1的单词 。
token_pattern = re.compile(r'(?u)\b\w+\b')
token_pattern.findall("this is a good example")
Out[74]: ['this', 'is', 'a', 'good', 'example']
3: 以", '来分割单词,比如说 ['this is a bus, that is a car']会被分割成['this is a bus', 'that is a car']
reexp = re.compile(',\s+')
In [77]: reexp.split('this is a bus, that is a car')
Out[77]: ['this is a bus', 'that is a car']
注意 \s+
表示逗号后面有一个空格,所以如果输入 ['this is a bus,that is a car'] 会得到不同的结果,那是因为输入的文字逗号后面没有空格
reexp.split('this is a bus,that is a car')
Out[78]: ['this is a bus,that is a car']