altra / reverse-regex
将正则表达式转换为文本,用于测试
dev-master
2022-02-03 11:58 UTC
Requires
- php: ^7.2|^8.0
- doctrine/collections: 1.6.5
- doctrine/lexer: 1.2.1
- patchwork/utf8: >=1.3
Requires (Dev)
- phpunit/phpunit: ^8
This package is not auto-updated.
Last update: 2024-09-27 23:57:27 UTC
README
使用正则表达式生成文本字符串,可用于以下情况
- 编写网页表单的测试数据。
- 编写数据库的测试数据。
- 生成正则表达式的测试数据。
示例
use ReverseRegex\Lexer;
use ReverseRegex\Random\SimpleRandom;
use ReverseRegex\Parser;
use ReverseRegex\Generator\Scope;
# load composer
require "vendor/autoload.php";
$lexer = new Lexer('[a-z]{10}');
$gen = new SimpleRandom(10007);
$result = '';
$parser = new Parser($lexer,new Scope(),new Scope());
$parser->parse()->getResult()->generate($result,$gen);
echo $result;
生成
jmceohykoa
aclohnotga
jqegzuklcv
ixdbpbgpkl
kcyrxqqfyw
jcxsjrtrqb
kvaczmawlz
itwrowxfxh
auinmymonl
dujyzuhoag
vaygybwkfm
其他示例
安装
使用composer进行安装
{
"require" : {
"icomefromthenet/reverse-regex" : "dev-master"
}
}
编写正则表达式
- 转义所有元字符,即如果你需要在正则表达式中转义字符,你需要在这里转义。
- 并非所有元字符都受支持,请参见以下列表。
- 使用
\X{####}
指定unicode值,使用[\X{####}-\X{####}]
指定范围。 - 不支持的Unicode
\p
,我找不到UCD到php的端口,也许将来会添加支持。 - 量词应用于最左侧的组、字面量或字符类。
- 注意
+
和*
量词,它们应用的最多可能出现次数为PHP_INT_MAX
。
正则表达式支持
示例 | 描述 | 结果字符串 |
---|---|---|
(abcf) | 支持字面量,这将生成字符串 | `abcf` |
\((abcf)\) | 按照通常在正则表达式中转义元字符 | `(abcf)` |
[a-z] | 支持字符类 | `a` |
a{5} | 支持量词,总是应用于最后一个组或字面量或字符类 | `aaaaa` |
a{1,5} | 支持范围量词 | `aa` |
a|b|c | 支持选择,随机选择三个中的一个 | `b` |
a|(y|d){5} | 支持使用选择和量词的组 | `ddddd`或`a`或`yyyyy` |
\d | 数字简写等价于[0-9] | `1` |
\w | 单词字符简写等价于[a-zA-Z0-9_] | `j` |
\W | 非单词字符简写等价于[^a-zA-Z0-9_] | `j` |
\s | 空格简写仅适用于ASCII | ` ` |
\S | 非空格简写仅适用于ASCII | `i` |
. | 点所有ASCII字符 | `$` |
* + ? | 简写量词,建议不要使用它们 | |
\X{00FF}[\X{00FF}-\X{00FF}] | Unicode范围 | |
\xFF[\xFF-\xFF] | 十六进制范围 |