jitsu / regex
PHP正则表达式函数的标准化API
Requires
- php: >=5.3.0
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。
包含匹配偏移数据的正则表达式匹配。