braincrafted / expexp
v0.2.2
2013-10-20 21:25 UTC
Requires (Dev)
- phpunit/phpunit: 3.7.*
README
ExpExp 扩展表达式。这与常规正则表达式的功能正好相反。
例如 ab(cd|[xy])
会扩展为
abcd
,abx
和aby
.
作者
功能
以下表达式可以通过该库进行扩展
析取
abc[xyz]
将扩展为
abcx
abcy
abcz
命名字符类
除了列出所有析取字符外,您还可以从一组可用的字符类中进行选择
upper
包含大写字母(从ASCII)lower
包含小写字母(从ASCII)digit
包含数字space
包含空格字符punct
包含标点符号
您可以通过将它们括在冒号中来使用命名字符类
[:upper:]
点操作符
abc.
将扩展为
abcA
abcB
- …
点操作符不会扩展到每个字符,而只会扩展到 A-Za-z0-9_
。
括号
ab(c)
将扩展为
abc
重复
重复操作符允许重复前面的字符。如果只给出一个值,则重复前面的字符,如果给出两个值,则将字符与给定范围内的每个值相乘。{,3}
与 {0,3}
相同。
a{3}
将扩展为
aaa
或带有最小和最大值的重复
a{1,3}
将扩展为
a
aa
aaa
这也适用于析取和括号。
选择
abc|xyz
将扩展为
abc
xyz
可选
abc?
将扩展为
abc
ab
这也适用于括号
abc(xyz)?
将扩展为
abc
abcxyz
因此,可选操作符的效果与 {0,1}
相同。
更多示例
用法
实例化对象,并用模式调用 expand()
方法
use Bc\ExpExp\ExpExp;
$e = new ExpExp();
$result = $e->expand('abc|xyz');
更多示例可以在测试用例中找到。
变更日志
版本 0.2.2 (2013-10-20)
- 点操作符匹配
word
字符类
版本 0.2.1 (2013-10-19)
- 命名字符类
版本 0.2 (2013-10-19)
- 将命名空间更改为
Braincrafted
- 添加重复操作符
{}
- 完全重写以使其更容易扩展
- 改进测试套件
版本 0.1.1 (2013-10-16)
- 更好的代码风格
- 更好的代码文档
版本 0.1 (2013-10-16)
- 移动到
Bc
命名空间 - 用模式调用
expand()
- 更好的文档
许可证
ExpExp 根据 MIT 许可证授权。有关更多信息,请参阅项目根目录中的 LICENSE
文件。