当前位置: 首页 > news >正文

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下载

相关文章:

  • 电脑视频如何压缩变小 mp4视频太大怎么压缩不影响画质
  • QT--气泡框的实现
  • 搭建LNMP服务器
  • 如何利用curl命令访问Kubernetes API server
  • 2024电工杯A题详细思路代码分析数学建模:园区微电网风光储协调优化配置
  • SpringBoot多数据源启动出现循环依赖问题
  • AI网络爬虫:批量爬取电视猫上面的《庆余年》分集剧情
  • uniapp 快手小程序隐藏scrollbar
  • 59. UE5 RPG AI行为树的任务
  • 【AD21】BOM表文件的输出
  • 2024年ai知识库:特点、应用与搭建
  • 12、电科院FTU检测标准学习笔记-双路电源自动切换
  • SQLite数据库免改造透明加密解决方案:给数据加把锁
  • Flutter容器
  • SpheroGPT: 声控自然语言编程 AI 玩具 Demo 具身智能 图文解说 完全开源机器人
  • ----------
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 2019年如何成为全栈工程师?
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Effective Java 笔记(一)
  • Gradle 5.0 正式版发布
  • Less 日常用法
  • Linux gpio口使用方法
  • QQ浏览器x5内核的兼容性问题
  • spring boot 整合mybatis 无法输出sql的问题
  • webgl (原生)基础入门指南【一】
  • 观察者模式实现非直接耦合
  • 基于 Babel 的 npm 包最小化设置
  • 聊聊flink的TableFactory
  • 浅谈Golang中select的用法
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 微服务核心架构梳理
  • 我的zsh配置, 2019最新方案
  • k8s使用glusterfs实现动态持久化存储
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​数据结构之初始二叉树(3)
  • !$boo在php中什么意思,php前戏
  • # wps必须要登录激活才能使用吗?
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #pragma once
  • (02)Unity使用在线AI大模型(调用Python)
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)插入排序
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)EOS中账户、钱包和密钥的关系
  • (转载)虚函数剖析
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'