美文网首页
数据解析利器「正则表达式」

数据解析利器「正则表达式」

作者: 乌木山 | 来源:发表于2020-09-22 17:41 被阅读0次

工作当中,我们经常会遇到从海量数据提取出有效信息的场景,例如:日志里查找关键信息、批量清洗数据、数据格式批量转换等。
在数据处理过程中,我们通常会使用常见的grep、sed、awk等命令,这个时候,如果结合起正则表达式,往往会使得脚本更为高效,适用场景更加广泛。

可以做什么

正则表达式,可以认为是一个字符串表述公式,表述了一类符合描述语法规则的字符串。通过正则表达式,可以检查一个字符串是否包含某种子串、从字符串中提取某类子串、或者替换字符串中的某类子串。

正则表达式是一种标准化的语法表述,很多语言支持正则表达式的解析,例如java、JavaScript、shell等等。

语法描述

正则表达式主要有普通字符和特殊字符(元字符)构成。特殊字符在正则中有着特殊的作用,如果想要匹配特殊字符本身,需要通过‘\’进行转义。
接下来我们介绍一下常见的一些使用场景及其正则表述方式。

字符集
如果我们要查找一些特定的字符集合,就可以用如下方式表示:

表述 含义
[ABCD] 匹配[...]里的任意一个字符
[A-Z] 区间范围,表示匹配大写字符A到Z的所有字符。类似的包括[a-z],[0-9]等。
[^ABCD] 匹配除了括号内的所有其他字符。
特殊字符 \w 代表字母+数字+下划线;\s代表空白符;\S 所有非空白符(包括换行);. 代表除换行符的任意单个字符

限定符
用来表示前边的描述组件需要匹配的次数,限定符一共包括以下几种:

表述 含义
* 匹配前边的子表达式 0 到 多 次。
+ 匹配前边的 1 到 多 次。
? 匹配前边的 0 到1 次。 (所谓的非贪婪匹配)
{n} , {n, }, {n, m} 分别代表匹配 n次、匹配至少n次,匹配 n到m 次

定位符

表述 含义
^ 匹配字符开头
$ 匹配字符串结尾

相关文章

网友评论

      本文标题:数据解析利器「正则表达式」

      本文链接:https://www.haomeiwen.com/subject/sgmwyktx.html