Python-正则表达式(记录一些规则和常用表达式,以备使用)

Python-正则表达式(官方文档)

最近一个项目大量的接触nlp相关的算法。所以经常要对文本进行操作。因此会频繁的使用正则表达式。
记录一些常见的规则和表达式以备使用。

import re
string = ''
pattern = ''
print(re.findall(pattern, string)) # 里面填正则表达式,会再string里面匹配格式正确的字符
print(re.search(pattern, string, flags=0)) # 搜索第一个匹配上格式的字符
print(re.match(pattern, string, flags=0)) # 获取第一个匹配上格式的字符
print(re.split(pattern, string, maxsplit=0, flags=0)) # 按格式分割字符
print(re.sub(pattern, repl, string, count=0, flags=0)) # 把 pattern格式的替换成repl

正则表达式的一些规则:(参考来自)

^ 匹配字符串的开始。
$ 匹配字符串的结尾。
\b 匹配一个单词的边界。
\d 匹配任意数字。
\D 匹配任意非数字字符。
x? 匹配一个可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符)。
x* 匹配0次或者多次 x 字符。
x+ 匹配1次或者多次 x 字符。
x{n,m} 匹配 x 字符,至少 n 次,至多 m 次。
(a|b|c) 要么匹配 a,要么匹配 b,要么匹配 c。
(x) 一般情况下表示一个记忆组 (remembered group)。你可以利用 re.search 函数返回对象的 groups() 函数获取它的值。
正则表达式中的点号通常意味着 “匹配任意单字符”
[] 表示一个字符集合。比如 [a-z] 将匹配任何小写ASCII字符, [0-5][0-9] 将匹配从 00 到 59 的两位数字, [0-9A-Fa-f] 将匹配任何十六进制数位。
\w 匹配字母、数字、下划线。
\W 匹配非(字母数字下划线)。

还有一些常用的正则表达式可见这个博客:https://blog.csdn.net/wangjia55/article/details/7877915

例如:(节选)

根据上面的一些规则,具体应用进行修改。

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配特定数字:
^[1-9]\d*$    //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

猜你喜欢

转载自blog.csdn.net/weixin_41809530/article/details/113944914