grex 使用指南:一款简易的正则表达式生成工具


阿拉平平

读完需要

3

分钟

速读仅需 1 分钟


前几天和大家分享了一个日志高亮显示器:tailspin。在演示定制化配置时,我加了一段简单的正则匹配。事实上,线上的业务日志通常会比较复杂,对应的正则表达式也会很繁琐。这时如果有自动生成正则表达式的工具就比较方便了。


1. 项目介绍

   

grex[1] 是一个基于 Rust 开发的命令行工具,可以根据用户提供的测试示例生成正则表达式。本文将介绍 grex 的安装和使用方法。


2. 下载安装

   

目前 grex 的最新版本为 1.4.5,可以从 releases[2] 下获取对应的安装包。

以 Linux 服务器为例,运行以下命令安装:

# 下载安装包
wget https://github.com/pemistahl/grex/releases/download/v1.4.5/grex-v1.4.5-x86_64-unknown-linux-musl.tar.gz -O grex.tar.gz

# 解压
tar -zxf grex.tar.gz

# 将二进制文件放到 PATH 下
cp -a grex /usr/local/bin/
安装完成后,查看下 grex 的版本:
$ grex -v
grex 1.4.5
如果版本显示正确,说明安装无误。


3. 使用说明

   

grex 可以作为命令行工具或代码库使用。这里主要介绍下命令行中常用的选项。


3.1 基本输入


   

选项

[INPUT]...         多个测试用例用空格分隔
-f, --file <FILE> 读取文件,多个测试用例用换行分隔
示例:
# 直接输入
$ grex a b c
^[a-c]$

# 读取文件
$ grex -f test.txt


3.2 数字


   

选项:

-d, --digits      将所有 Unicode 十进制数字转化为 d
-D, --non-digits 将所有非
Unicode 十进制数字转化为 D

示例

# 将所有 Unicode 十进制数字转化为 d
$ grex -d 111 abc
^(?:ddd|abc)$

# 将所有非 Unicode 十进制数字转化为 D
$ grex -D 111 abc
^(?:111|DDD)$

3.3 空格


   

选项:

-s, --spaces      将所有 Unicode 空格字符转化为 s
-S, --non-spaces
将所有非 Unicode 空格字符转化为 S

示例

# 将所有 Unicode 空格字符转化为 s
$ grex -s "a b" "c bd"
^(?:csbd|asb)$

# 将所有非 Unicode 空格字符转化为 S
$ grex -S "a b" "c bd"
^S S(?:S)?$


3.4 单词


   

选项:

-w, --words      将所有 Unicode 单词字符转化为 w
-W, --non-words 将所有非 Unicode 单词字符转化为 W

示例

# 将所有 Unicode 单词字符转化为 w
$ grex -w %2a ab
^%?ww$

# 将所有非 Unicode 单词字符转化为 W
$ grex -W %2a ab
^(?:W2a|ab)$


3.5 重复


   

选项:

-r, --repetitions   检测重复的非重叠子字符串并转换为 { min,max }

示例

# 检测重复的非重叠子字符串并转换为 { min,max } 
$ grex -r b ba baa baaa
^b(?:a{1,3})?$


4. 写在最后

   

grex 作为一个正则表达式生成工具,可以作为库或命令行使用,还是比较方便的。不过有了 grex, 并不意味着我们就可以不用学习正则表达式了。从示例可以看出,grex 生成的规则未必是最优解,某些情况下,还需要手动修改。

References

[1] grexhttps://github.com/pemistahl/grex

[2] releases: https://github.com/pemistahl/grex/releases

原文始发于微信公众号(阿拉平平):grex 使用指南:一款简易的正则表达式生成工具

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/287223.html

(0)
码上实战的头像码上实战

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!