正则表达式

正则表达式

定义

正则表达式是一种文本模式。

正则表达式 = 普通字符 + 特殊字符(元字符)

语法

特殊字符 描述
[...] 匹配其中的所有字符,也即“取值范围”
[^...] 不匹配其中的所有字符,当^在[]中时表示取反操作
(...) 子表达式
{beg, end} 限定前一个组件的匹配次数为大于beg次,小于end次,也即“取值范围”
| 左右两项之间的一个选择,也即“或”
^...$ ^匹配字符串开始的位置 $匹配字符串结束的位置
. 匹配换行符
* 匹配前面的模式任意次
+ 匹配前面的模式至少一次
? 匹配前面的模式零次或一次
exp1(?=exp2) 查找 exp2 前面的 exp1
(?<=exp2)exp1 查找 exp2 后面的 exp1
exp1(?!exp2) 查找后面不是 exp2 的 exp1
(?<!exp2)exp1 查找前面不是 exp2 的 exp1。

Python3 实现

re.match

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

re.match(pattern, string, flags=0)

re.search

re.search 扫描整个字符串并返回第一个成功的匹配。

re.match(pattern, string, flags=0)

python3 匹配中英文标点符号

在某些敏感词检测场景中,需要忽略敏感词内部的标点符号,以此来提升检测的准确率。

代码示例如下:

import regex as re

p = "稳[p{P}|s]*赚"

s = "稳,。:;‘“!?、- ——%@#()【】{} ,.:;'"!?- _%@#()[]{}赚不赔"

pattern = re.compile(p)
print(pattern.search(s))

程序运行结果显示,成功识别出敏感词。

[Reference]

https://www.runoob.com/python3/python3-reg-expressions.html

智慧在街市上呼喊,在宽阔处发声。
原文地址:https://www.cnblogs.com/fengyubo/p/14471645.html