正则表达式是可以进行文本匹配、索搜、替换的规则。 在处理NLP任务时,正则表达式往往表现得准确、快速、高效、灵活。
但是正则虽好,切不可贪用哦,滥用正则甚至会出现让内存溢出导致整个服务器瘫痪的情况。在实际应用中,如果有很复杂的正则要求,而你又不是很熟悉,可以借助代码逻辑,将正则拆分成多个简单正则。
不同的程序语言所支持的正则所有不同(有些正则功能不支持等),具体应用时根据所使用的编程语言视情况而定。
废话不多说,让我们从具体例子中学习正则吧(有道云版本更佳)。
测试文本:这是一段测试文本,里面包含了数字0-9,字母a-z,中文,邮编210000等等
- 入门级
- 匹配单个字符
- 重复匹配
- 匹配多个字符
- 匹配元字符
- 普通级
- 位置匹配
- 贪婪与非贪婪匹配
- 分组与捕获
熟练级
-
- 回溯引用
- 前后查找
- 条件匹配
入门级
匹配单个字符
空格匹配
s
换行符匹配
n
tab键匹配
t
任意字符匹配(可能不包含换行符)
.
单个数字匹配
d 或者 [0-9]
单个字母匹配
[a-zA-Z]
单个中文匹配
[u4e00-u9fa5]
重复匹配
import re
# 测试文本
text = "这是一段测试文本,test text for testing,这里面包含了数字0-9(d),字母a-z,中文,邮编210000等等"
print("测试文本:", text)
# 匹配6个数字
regress = r"d{6}"
result = re.findall(r