自然语言处理课程自学笔记(一)之python正则表达式

处理字符的强有力的工具。

字符串操作

(1)去空格及特殊符号:
自然语言处理课程自学笔记(一)之python正则表达式
(2)连接字符串:
自然语言处理课程自学笔记(一)之python正则表达式
(3)查找字符:
自然语言处理课程自学笔记(一)之python正则表达式
若查找模式串则需要用正则表达式。
(4)比较字符串:
以前是cmp函数,现在改为operator。
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式
函数返回布尔值(True or False)。
(5)字符串中大小写转换:
自然语言处理课程自学笔记(一)之python正则表达式
(6)翻转字符串:
自然语言处理课程自学笔记(一)之python正则表达式
(7)查找字符串:
自然语言处理课程自学笔记(一)之python正则表达式
(8)分割字符串:
第一种:
自然语言处理课程自学笔记(一)之python正则表达式
第二种:
自然语言处理课程自学笔记(一)之python正则表达式
(9)计算字符串中出现频次最多的字母:
第一种:
自然语言处理课程自学笔记(一)之python正则表达式
第二种:
自然语言处理课程自学笔记(一)之python正则表达式
第三种:
自然语言处理课程自学笔记(一)之python正则表达式

正则表达式

是处理字符串的强大工具,拥有独特的语法和独立的处理引擎。在一些复杂的情况下才会用到。
效率比str略差,但匹配功能强很多。
不是python独有的,其他语言也有。

语法
当你想要匹配一个/多个/任意个数字/字母/非数字/非字母/某几个字符/任意字符,想要贪婪/非贪婪匹配,想要捕获匹配出来的第一个/所有内容的时候,一下可以参考:
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式

常用的有
. 匹配除掉换行符以外的所有字符
\d 匹配所有的数字
\D 匹配除数字以外的所有的字符
\s 匹配空格、换行符、Tab等(肉眼所见为空白的字符)
\S 匹配除空格、换行符、Tab等以外的所有字符
\w 匹配单词字符(a-z,A-Z,0-9,_)
\W 匹配除单词字符以外所有的字符
[] 匹配括号中的字符(自己制指定)
\d{2} 匹配2个一起的数字字符
\d{2,4} 匹配2个一起/3个一起/4个一起的数字字符
? 匹配前面字符0次/1次 (abc?—-ab/abc)
+ 匹配前面字符1次或无限次 (abc+ —-abc/abcccc)
* 匹配前面字符0次或无限次 (abc* —-ab/abcccc)(a(bc)*——a/abcbcbcbc)
^w.*e$ 匹配以w开头,以e结尾的字符串
(at)|(ve) 匹配所有的at和ve

python案例

python通过 re模块提供对正则表达式的支持。

使用re步骤:
(1)将正则表达式的字符串形式编译为Pattern实例。
(2)使用Pattern实例处理文本并获得匹配结果(一个Match实例)
(3)使用Match实例获得信息,进行其他操作。
自然语言处理课程自学笔记(一)之python正则表达式

关于re.compile(strPattern[ ,flag])
自然语言处理课程自学笔记(一)之python正则表达式
flag可加可不加。

关于Match
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式
例子:
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式

关于Pattern
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式
自然语言处理课程自学笔记(一)之python正则表达式