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

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

作者: 乌木山 | 来源:发表于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