正则表达式基础知识入门

2019/12/25 正则表达式

最近 因为工作需要进行nlp文本提取,提取一些案由文书里的相关信息,所以学习了正则表达式,现在将正则表达式总结一下:

  • 正则表达式常见元字符
  • 正则表达式正向非捕获,逆向非捕获
  • 正则表达式正向捕获,逆向捕获
  • 使用python中re模块中的正则相关方法

1. 正则表达式常见元字符?

更多常见的正则表达式符号查看

元字符 功能 备注
. 表示任意字符  
* 表示0个或多个任意字符  
? 表示前面的字符可能会出现也可能不会出现  
\d 表示任意数字  
\s 表示空白符和换行符  
\w 匹配单词字符 [0-9] [a-z] [A-Z]等  
\D 匹配非数字  
\S 匹配非空白符  
\W 匹配非单词字符  
[] 列举可能出现的字符  
+ 表示前面的字符必须出现一次或者一次以上  
^ 匹配段落开始或者在[]中表示非  

2. 正则表达式捕获组?

表达式 功能 备注
(?:) 不进行捕获元素的匹配  
(?=) 正向肯定匹配  
(?<=) 逆向肯定匹配,多个参数长度一致  
(?!) 正向否定匹配  
(?<!) 逆向否定匹配,多个参数长度一致  

3. 常见使用的正则表达式

1、 匹配某个案件的案件线索来源

........(?:早晨|早上|中午|傍晚|晚上|夜间|凌晨)..?(?:时许|□□)[,].*(?=属本[].*案件)|

2、 匹配段落

[\s\S]*A 表示匹配到文本中出现的最后一个A截止

[\s\S]*?A 表示匹配到文本中出现的第一个A截止

3、匹配多个字符

\w*

4. python 中re模块方法使用

4.1 安装、引入re模块

pip install re

// python中引入正则模块
import re

4.2 re.findAll(pattern, text)方法使用


// findAll方法可以匹配文本中所有的符合正则表达式的所有数据
re.findAll(pattern, text) 

4.3 re.search(pattern , text) 方法使用

// findAll方法可以匹配文本中所有的符合正则表达式的第一个数据
re.search(pattern, text)

4.4 replace(pattern , repl) 方法使用

// 文本类型的替换函数不支持使用正则表达式
replace(pattern, text)

4.5 re.sub(pattern, repl, string) 方法使用

// 第一个参数是进行替换的正则表达式第二个参数是想替换成什么字符串
// 第三个参数是要进行替换的文本
re.sub(pattern, repl, string)

4.6 re.split(pattern, string, maxsplit=0) 方法使用

// 第一个参数是进行替换的正则表达式第二个参数是要进行分割的字符串
// 第三个参数表示需要切割成多少份
re.split(pattern, string, maxsplit=0)

4.7 re.compile(pattern) 编译正则表达式方法使用

// 编译正则表达式在第二个参数中可以加 re.S 表示进行段落匹配
re.compile(pattern) 

结束语

  • 正则表达式常见元字符入门,正则表达式常见使用,使用python处理文本。

Search

    Table of Contents