jitsu/regex

PHP正则表达式函数的标准化API

0.1.1 2016-05-07 07:47 UTC

This package is auto-updated.

Last update: 2024-09-11 17:57:14 UTC


README

Jitsu\RegexUtil 类是用于处理PHP中正则表达式的静态方法集合。这些辅助函数简化了新模式的创建、字面字符串的转义、错误处理以及访问匹配偏移量。

此包是Jitsu的一部分。

安装

使用Composer安装此包

composer require jitsu/regex

命名空间

类定义在命名空间Jitsu下。

API

class Jitsu\RegexUtil

用于处理正则表达式的静态方法集合。

RegexUtil::create($pat, $flags = '', $start = null, $end = null)

从PCRE模式创建正则表达式。

将包含PCRE模式的字符串转换为与此模块兼容的值。不要包含定界符;它们将被自动添加和转义。您可以在单独的字符串中指定任何标志。如果您知道您的PCRE已经针对一组特定的定界符正确转义,则可以可选地提供要使用的开始和结束定界符,以避免转义模式的开销。

RegexUtil::errorString($code)

获取一个PREG_错误代码的错误字符串。

RegexUtil::match($regex, $str, $offset = 0)

尝试将正则表达式与字符串匹配。

对字符串进行正则表达式测试,并返回一个RegexUtilMatch对象,如果没有匹配则返回null

索引0处的匹配是匹配整个模式的字符串部分。

RegexUtil::matchWithOffsets($regex, $str, $offset = 0)

match类似,但还包括匹配的起始索引。

如果字符串与正则表达式匹配,则返回值包括匹配的起始索引。起始索引为-1表示该组未匹配。

RegexUtil::matchAll($regex, $str, $offset = 0)

获取字符串中正则表达式的所有非重叠匹配。

RegexUtil::matchAllWithOffsets($regex, $str, $offset = 0)

获取字符串中正则表达式的所有非重叠匹配以及偏移信息。

RegexUtil::escape($str, $delim = null)

为正则表达式中的插值转义字符串。

如果用于具有显式设置定界符的模式,您必须提供该定界符作为第二个参数。

RegexUtil::replace($regex, $str, $replacement, $limit = null)

将匹配正则表达式的字符串部分替换为另一个字符串。

替换字符串可以使用形式为\n$n${n}的回引用。可选地指定要进行的替换次数的限制(传递null表示无限)。

将替换次数存储在可选的$count变量中。

如果$replacement不是字符串或数组,则将其解释为具有签名function($matches)的回调函数,其返回值将用于生成替换字符串。参数$matches是包含匹配组的数组。

参数 $regex$replacement$str 可以是一个包含多个值的数组。当每个参数是标量时,它将应用于其他参数中的所有值,无论它们是标量还是数组。当每个参数是数组时,它将两两应用于其他数组的参数。

$regex 是一个数组,与标量 $str 进行比较时,所有模式都作为一个逻辑“或”来测试。

$replacement 是一个数组,元素不足以匹配其他数组参数时,缺失的值默认为空字符串。如果它是一个数组,它可能只包含字符串,不能包含回调函数。

$str 是一个数组时,返回一个替换后的字符串数组。

RegexUtil::replaceAndCount($regex, $str, $replacement, $limit = null)

类似于 replace,但包括作为第二个返回值的替换次数。

RegexUtil::replaceWith($regex, $str, $callback, $limit = null)

类似于 replace,但第二个参数始终被解释为一个回调函数。

这允许传递函数名称等。

RegexUtil::replaceAndCountWith($regex, $str, $callback, $limit = null)

类似于 replaceWith,但包括替换次数。

RegexUtil::replaceAndFilter($regex, $strs, $replacement, $limit = null)

replace 的行为相同,但当一个数组参数 $strs 存在时,只有执行了替换的字符串被返回到结果数组中。

RegexUtil::replaceAndFilterAndCount($regex, $strs, $replacement, $limit = null)

类似于 replaceAndFilter,但包括替换次数。

RegexUtil::grep($regex, $strs)

将正则表达式测试字符串数组,并返回匹配的字符串。

RegexUtil::invertedGrep($regex, $strs)

grep 相同,但返回所有不匹配正则表达式的字符串。

RegexUtil::split($regex, $str, $limit = null)

通过正则表达式分割字符串。可选地提供分割次数限制。

RegexUtil::splitWithOffsets($regex, $str, $limit = null)

类似于 split,但包含作为第二个返回值的偏移量。

RegexUtil::splitAndFilter($regex, $str, $limit = null)

类似于 split,但过滤掉结果中的空字符串。

RegexUtil::splitAndFilterWithOffsets($regex, $str, $limit = null)

类似于 splitAndFilter,但包含作为第二个返回值的偏移量。

RegexUtil::inclusiveSplit($regex, $str, $limit = null)

类似于 split,但除了包括分割模式的第1组在结果中。

RegexUtil::inclusiveSplitWithOffsets($regex, $str, $limit = null)

类似于 inclusiveSplit,但包含作为第二个返回值的偏移量。

class Jitsu\RegexUtilMatch

表示正则表达式匹配的对象。

new RegexUtilMatch($groups)

$regex_util_match->__toString()

$regex_util_match->groups()

获取匹配组的数组。

$regex_util_match->group($i)

获取特定组。

$regex_util_match->offsets()

获取匹配偏移量的数组。

$regex_util_match->offset($i)

获取特定组的偏移量。

class Jitsu\RegexUtilMatchWithOffsets

扩展 RegexUtilMatch

包含匹配偏移数据的正则表达式匹配。

new RegexUtilMatchWithOffsets($groups, $offsets)

$regex_util_match_with_offsets->offsets()

$regex_util_match_with_offsets->offset($i)