正则操作类¶
属性 | 值 |
---|---|
命名空间 | fize\misc |
类名 | Preg |
方法: |
---|
方法名 | 说明 |
---|---|
filter() | 执行一个正则表达式搜索和替换 |
grep() | 返回匹配模式的数组条目 |
lastError() | 返回最后一个PCRE正则执行产生的错误代码 |
matchAll() | 执行一个全局正则表达式匹配 |
match() | 执行一个正则表达式匹配 |
quote() | 转义正则表达式字符 |
replaceCallbackArray() | 使用回调执行正则表达式搜索和替换 |
replaceCallback() | 执行一个正则表达式搜索并且使用一个回调进行替换 |
replace() | 执行一个正则表达式的搜索和替换 |
split() | 通过一个正则表达式分隔字符串 |
方法¶
filter()¶
执行一个正则表达式搜索和替换
public static function filter (
mixed $pattern,
mixed $replacement,
mixed $subject,
int $limit = -1,
int &$count = null
) : mixed
参数: |
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
返回值: | 如果subject是一个数组,返回一个数组, 其他情况返回一个字符串。 |
Preg::filter() 等价于 Preg::replace() 除了它仅仅返回(可能经过转化)与目标匹配的结果
参数 `$replacement` :
如果这个参数是一个字符串,并且pattern 是一个数组,那么所有的模式都使用这个字符串进行替换。
如果pattern和replacement 都是数组,每个pattern使用replacement中对应的 元素进行替换。
如果replacement中的元素比pattern中的少, 多出来的pattern使用空字符串进行替换。
参数 `$subject` :
如果subject是一个数组,搜索和替换回在subject 的每一个元素上进行, 并且返回值也会是一个数组。
如果没有找到匹配或者发生了错误,当subject是数组 时返回一个空数组,其他情况返回NULL。
grep()¶
返回匹配模式的数组条目
public static function grep (
string $pattern,
array $input,
int $flags = 0
) : array
参数: |
|
---|
参数 `$flags` :
如果设置为PREG_GREP_INVERT, 这个函数返回输入数组中与给定模式pattern不匹配的元素组成的数组。
matchAll()¶
执行一个全局正则表达式匹配
public static function matchAll (
string $pattern,
string $subject,
array &$matches = null,
int $flags = 1,
int $offset = 0
) : int
参数: |
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
返回值: | 返回完整匹配次数(可能是0),或者如果发生错误返回FALSE。 |
match()¶
执行一个正则表达式匹配
public static function match (
string $pattern,
string $subject,
array &$matches = null,
int $flags = 0,
int $offset = 0
) : int
参数: |
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
返回值: | 返回 pattern 的匹配次数 |
参数 `$matches` :
如果提供了参数matches,它将被填充为搜索结果。
$matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
参数 `$$offset` :
可选参数 offset 用于 指定从目标字符串的某个未知开始搜索(单位是字节)。
返回值将是0次(不匹配)或1次,因为Preg::match()在第一次匹配后 将会停止搜索。
quote()¶
转义正则表达式字符
public static function quote (
string $str,
string $delimiter = null
) : string
参数: |
|
||||||
---|---|---|---|---|---|---|---|
返回值: | 返回转义后的字符串。 |
参数 `$delimiter` :
如果指定了可选参数 delimiter,它也会被转义。
这通常用于 转义PCRE函数使用的分隔符。 /是最通用的分隔符。
replaceCallbackArray()¶
使用回调执行正则表达式搜索和替换
public static function replaceCallbackArray (
array $patterns_and_callbacks,
mixed $subject,
int $limit = -1,
int &$count = null
) : mixed
参数: |
|
---|
参数 `$limit` :
每个主题字符串中每个模式的最大可能替换。默认为-1(没有限制)。
replaceCallback()¶
执行一个正则表达式搜索并且使用一个回调进行替换
public static function replaceCallback (
mixed $pattern,
callable $callback,
mixed $subject,
int $limit = -1,
int &$count = null
) : mixed
参数: |
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
返回值: | 如果subject是一个数组, preg_replace_callback()返回一个数组,其他情况返回字符串。 错误发生时返回 NULL。 |
参数 `$limit` :
对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。
replace()¶
执行一个正则表达式的搜索和替换
public static function replace (
mixed $pattern,
mixed $replacement,
mixed $subject,
int $limit = -1,
int &$count = null
) : mixed
参数: |
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
返回值: | 如果subject是一个数组, preg_replace()返回一个数组, 其他情况下返回一个字符串。 |
参数 `$replacement` :
如果这个参数是一个字符串,并且pattern 是一个数组,那么所有的模式都使用这个字符串进行替换。
如果pattern和replacement 都是数组,每个pattern使用replacement中对应的 元素进行替换。
如果replacement中的元素比pattern中的少, 多出来的pattern使用空字符串进行替换。
参数 `$limit` :
每个模式在每个subject上进行替换的最大次数。默认是 -1(无限)。
如果匹配被查找到,替换后的subject被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL 。
split()¶
通过一个正则表达式分隔字符串
public static function split (
string $pattern,
string $subject,
int $limit = -1,
int $flags = 0
) : array
参数: |
|
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
返回值: | 返回一个使用 pattern 边界分隔 subject 后得到 的子串组成的数组。 |
参数 `$limit` :
如果指定,将限制分隔得到的子串最多只有limit个,返回的最后一个 子串将包含所有剩余部分。
limit值为-1, 0或null时都代表"不限制"。
作为php的标准,你可以使用null跳过对flags的设置。
参数 `$flags` :
可以是任何下面标记的组合(以位或运算 | 组合):
PREG_SPLIT_NO_EMPTY、PREG_SPLIT_DELIM_CAPTURE、PREG_SPLIT_OFFSET_CAPTURE