grex 正则表达式生成工具

grex 正则表达式生成工具

  • 项目地址
  • 使用说明
  • 输入参数
  • 数字选项
  • 空白选项
  • 单词选项
  • 转义选项
  • 重复选项
  • 锚点选项
  • 显示选项
  • 其他选项
  • 官方例子
  • 参考资料

grex 既是一个库也是一个命令行工具,它可以自动从用户提供的测试用例生成单个正则表达式。

项目地址

https://github.com/pemistahl/grex

使用说明

grex 可以根据用户提供的测试用例生成正则表达式。

grex [OPTIONS] {输入...|--file <文件>}

输入参数

  • [输入...]:一个或多个以空格分隔的测试用例。
  • -f, --file <文件>:从一个文件中读取测试用例,每个测试用例占一行。

数字选项

  • -d, --digits:将任何 Unicode 十进制数字转换为 \d
  • -D, --non-digits:将任何不是 Unicode 十进制数字的字符转换为 \D

空白选项

  • -s, --spaces:将任何 Unicode 空白字符转换为 \s
  • -S, --non-spaces:将任何不是 Unicode 空白字符的字符转换为 \S

单词选项

  • -w, --words:将任何 Unicode 单词字符转换为 \w
  • -W, --non-words:将任何不是 Unicode 单词字符的字符转换为 \W

转义选项

  • -e, --escape:将所有非 ASCII 字符替换为 Unicode 转义序列。
  • --with-surrogates:如果设置了 --escape,则将星号代码点转换为代理对。

重复选项

  • -r, --repetitions:检测重复的非重叠子字符串并转换为 {min,max} 量词表示法。
  • --min-repetitions <数量>:指定如果设置了 --repetitions,则要转换的子字符串重复的最小数量,默认为 1。
  • --min-substring-length <长度>:指定如果设置了 --repetitions,则要转换的重复子字符串的最小长度,默认为 1。

锚点选项

  • --no-start-anchor:从生成的正则表达式中移除脱字符锚点 ^
  • --no-end-anchor:从生成的正则表达式中移除美元符号锚点 $
  • --no-anchors:从生成的正则表达式中移除脱字符和美元符号锚点。

显示选项

  • -x, --verbose:在详细模式下生成更易于阅读的正则表达式。
  • -c, --colorize:为生成的正则表达式提供语法高亮。

其他选项

  • -i, --ignore-case:执行不区分大小写的匹配,字母匹配大写或小写。
  • -g, --capture-groups:将非捕获组替换为捕获组。
  • -h, --help:打印帮助信息。
  • -v, --version:打印版本信息。

官方例子

  • 以下示例展示了各种支持的正则表达式语法特性。
$ grex a b c
^[a-c]$$ grex a c d e f
^[ac-f]$$ grex a b x de
^(?:de|[abx])$$ grex abc bc
^a?bc$$ grex a b bc
^(?:bc?|a)$$ grex [a-z]
^\[a\-z\]$$ grex -r b ba baa baaa
^b(?:a{1,3})?$$ grex -r b ba baa baaaa
^b(?:a{1,2}|a{4})?$$ grex y̆ a z
^(?:y̆|[az])$
注:
图元 y̆ 由两个 Unicode 符号组成:
U+0079 (拉丁小写字母 Y)
U+0306 (组合式短音符号)$ grex "I ♥ cake" "I ♥ cookies"
^I ♥ c(?:ookies|ake)$
注:
包含空格的输入必须用引号括起来。

以下命令行用法中 <INPUT> 为字符串 I ♥♥♥ 36 and ٣ and 💩💩.

$ grex <INPUT>
^I ♥♥♥ 36 and ٣ and 💩💩\.$$ grex -e <INPUT>
^I \u{2665}\u{2665}\u{2665} 36 and \u{663} and \u{1f4a9}\u{1f4a9}\.$$ grex -e --with-surrogates <INPUT>
^I \u{2665}\u{2665}\u{2665} 36 and \u{663} and \u{d83d}\u{dca9}\u{d83d}\u{dca9}\.$$ grex -d <INPUT>
^I ♥♥♥ \d\d and \d and 💩💩\.$$ grex -s <INPUT>
^I\s♥♥♥\s36\sand\\sand\s💩💩\.$$ grex -w <INPUT>
^\w ♥♥♥ \w\w \w\w\w \w \w\w\w 💩💩\.$$ grex -D <INPUT>
^\D\D\D\D\D\D36\D\D\D\D\\D\D\D\D\D\D\D\D$$ grex -S <INPUT>
^\S \S\S\S \S\S \S\S\S \S \S\S\S \S\S\S$$ grex -dsw <INPUT>
^\w\s♥♥♥\s\d\d\s\w\w\w\s\d\s\w\w\w\s💩💩\.$$ grex -dswW <INPUT>
^\w\s\W\W\W\s\d\d\s\w\w\w\s\d\s\w\w\w\s\W\W\W$$ grex -r <INPUT>
^I ♥{3} 36 and ٣ and 💩{2}\.$$ grex -er <INPUT>
^I \u{2665}{3} 36 and \u{663} and \u{1f4a9}{2}\.$$ grex -er --with-surrogates <INPUT>
^I \u{2665}{3} 36 and \u{663} and (?:\u{d83d}\u{dca9}){2}\.$$ grex -dgr <INPUT>
^I ♥{3} \d(\d and ){2}💩{2}\.$$ grex -rs <INPUT>
^I\s♥{3}\s36\sand\\sand\s💩{2}\.$$ grex -rw <INPUT>
^\w ♥{3} \w(?:\w \w{3} ){2}💩{2}\.$$ grex -Dr <INPUT>
^\D{6}36\D{5}٣\D{8}$$ grex -rS <INPUT>
^\S \S(?:\S{2} ){2}\S{3} \S \S{3} \S{3}$$ grex -rW <INPUT>
^I\W{5}36\Wand\\Wand\W{4}$$ grex -drsw <INPUT>
^\w\s♥{3}\s\d(?:\d\s\w{3}\s){2}💩{2}\.$$ grex -drswW <INPUT>
^\w\s\W{3}\s\d(?:\d\s\w{3}\s){2}\W{3}$

参考资料

grex CSDN下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘!你的电商产品为何滞销?同行火爆销售的7大原因!

同样做电商&#xff0c;但自家产品销量不如竞对同行&#xff0c;可能的原因有多种&#xff0c;以下是店雷达总结7个可能的原因和对策&#xff1a; 一、市场竞争分析不足 未能准确识别并分析竞争对手的产品、定价、营销策略等关键信息&#xff0c;导致自身产品无法脱颖而出。 …

5.14 力扣每日一题 贪心

2244. 完成所有任务需要的最少轮数 class Solution { public:int minimumRounds(vector<int>& tasks) {int ntasks.size(),sum0;sort(tasks.begin(),tasks.end()); //排序就不用哈希表int a;for(int i0;i<n;){int ct0;atasks[i];while(i<n&&tasks[i]a…

机器学习(四) ----------逻辑回归

目录 1 概述 2 极大似然估计 3 逻辑回归核心思想 3.1 对数似然损失&#xff08;Log-likelihood Loss&#xff09; 4 分类问题的评估方法 4.1 混淆矩阵&#xff08;Confusion Matrix&#xff09;&#xff1a; 4.2 准确率&#xff08;Accuracy&#xff09; 4.3 精确率&am…

JavaScript精粹(三)- 函数作用域

函数&#xff08;Function&#xff09;是代码的可重用块&#xff0c;它们封装了特定的功能或行为&#xff0c;并可以在需要时通过调用其名称来执行。函数可以接受输入&#xff08;参数&#xff09;&#xff0c;执行一系列操作&#xff0c;并可能返回输出&#xff08;返回值&…

数据结构与算法学习笔记三---栈和队列

目录 前言 一、栈 1.栈的表示和实现 1.栈的顺序存储表示和实现 1.C语言实现 2.C实现 2.栈的链式存储表示和实现 1.C语言实现 2.C实现 2.栈的应用 1.数制转换 二、队列 1.栈队列的表示和实现 1.顺序队列的表示和实现 2.链队列的表示和实现 2.循环队列 前言 这篇文…

P9748 [CSP-J 2023] 小苹果:做题笔记

目录 P9748 [CSP-J 2023] 小苹果 思路 代码 P9748 [CSP-J 2023] 小苹果 P9748 [CSP-J 2023] 小苹果 思路 先写几个看看规律 题意我们能看出来是三个三个一组的&#xff0c;然后每次取走的都是三个里面的第一个。我们应该很容易想到如果一轮的总数是三的倍数的话&#xff0…

94、动态规划-最长公共子序列

递归的基本思路&#xff1a; 比较两个字符串的最后一个字符。如果相同&#xff0c;则这个字符一定属于最长公共子序列&#xff0c;然后在剩余的字符串上递归求解。如果最后一个字符不相同&#xff0c;则分两种情况递归求解&#xff1a; 去掉 text1 的最后一个字符&#xff0c;保…

【论文笔记 | 异步联邦】FedSA

FedSA&#xff1a;一种处理 non-IID 数据 的 过时感知 异步联邦算法 1. 论文信息 FedSA&#xff1a;A staleness-aware asynchronous Federated Learning algorithm with non-IID data&#xff0c;Future Generation Computer Systems&#xff0c;2021.7&#xff0c;ccfc 是…

RHEL之网络接口的绑定

前言 这些步骤最好都在虚拟机中完成 网络接口绑定是将多个网络接口逻辑地连接在一起&#xff0c;目的一是避免网络接口的单点故障&#xff0c;二是提高带宽以提高吞吐率 具体步骤 1.用ip link查看有哪些网络接口 2.添加一个类型bond的连接 nmcli con add type bond con-nam…

【汇编】算术指令

一、加法指令 &#xff08;一&#xff09;各加法指令的格式及操作 加法指令可做字或字节运算 &#xff08;1&#xff09;加法指令 ADD 格式&#xff1a;ADD DST,SRC执行的操作&#xff1a;(DST) ← (SRC)(DST) &#xff08;2&#xff09;带进位加法指令 ADC 格式&#xf…

AIGC岗位需求增长超300%,平均年薪超40万元

AI圈最近又发生了啥&#xff1f; AIGC 应用爆发&#xff0c;相关岗位需求增长超 300%、平均招聘年薪超 40 万元 随着 AI应用的爆发&#xff0c;生成式人工智能(AIGC)的招聘市场十分火爆。数据显示今年一季度&#xff0c;生成式人工智能相关职位需求同比增长超三倍。从全平台增…

Scala编程基础6:连接mysql数据库、在scala中使用fastJson

一、scala连接mysql数据库 /*** scala连接mysql数据库*/ object JDBCDEmo8 {def main(args: Array[String]): Unit {//加载驱动Class.forName("com.mysql.jdbc.Driver")//创建与数据库连接对象val conn: Connection DriverManager.getConnection("jdbc:mysql…

功能安全如何在公司顺利开展?-亚远景科技

亚远景功能安全主题线上会议报名开启&#xff01; 随着汽车技术的不断发展&#xff0c;汽车系统的复杂性和交互性大幅增加&#xff0c;功能安全成为确保驾驶员、乘客及行人安全的关键。 本场功能安全线上会议&#xff0c;亚远景为汽车行业的相关人员准备了以下内容&#xff1a…

Linux|基础IO

Linux|基础IO 回顾c语言的文件操作提炼对文件的理解系统调用初始open函数返回值fd为什么我们向fd一个整数写就写入文件了呢&#xff1f;怎么理解读写操作总结open函数有哪些功能怎么理解往硬件&#xff08;显示器&#xff0c;键盘&#xff09;中读写数据如何理解FILE*访问文件 …

【C语言】自定义类型之---结构体超详解(结构体的定义使用、指针结构体,内存对齐,......代码详解)

目录 前言&#xff1a; 一&#xff1a;结构体 1.1&#xff1a;什么是结构体&#xff1f; 1.2&#xff1a;结构体类型的声明 1.3&#xff1a;结构体变量的定义 1.4&#xff1a;结构体的内存对齐 1.5&#xff1a;结构体传参 二&#xff1a;位段 2.1&#xff1a;位段是什…

2024年【金属非金属矿山(露天矿山)安全管理人员】模拟考试题库及金属非金属矿山(露天矿山)安全管理人员作业模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员模拟考试题库参考答案及金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员考试试题解析是安全生产模拟考试一点通题库老师及金属非金属矿山&a…

Google I/O 2024 干货全解读:Gemini AI 横空出世,智能未来触手可及!

Google I/O 2024 干货全解读&#xff1a;Gemini AI 横空出世&#xff0c;智能未来触手可及&#xff01; 博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》…

面试前端随笔20240510

最近公司招聘前端开发人员有幸参与帮听&#xff0c;总结了三个有关vue的面试问题和答案&#xff0c;现在分享一下。 1.Vue2数据监听无法监听数组为啥&#xff1f;有啥解决方案&#xff1f;vue3中是如何处理这个问题&#xff1f; vue2的官方说明了defineProperty的一些限制&…

Oracle SQL Developer 脚本输出中文显示乱码

问题描述 在测试Oracle Select AI&#xff08;自然语言查询数据库&#xff09;时&#xff0c;发现Run Statement中文显示正常&#xff1a; 而Run Script中文显示乱码&#xff1a; 问题解决 进入菜单Tools>Preferences...>Environment&#xff0c; 修改SQL Developer…

JavaScript-JSON对象

JSON格式 JSON&#xff08;JavaScript Object Notation, JS对象简谱&#xff09;是一种轻量级的数据交换格式。它基于ECMAScript&#xff08;European Computer Manufacturers Association, 欧洲计算机协会的一个子集&#xff0c;采用完全独立于编程语言的文本格式来存储和表示…