正则操作类

属性
命名空间 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
参数:
名称 说明
pattern 要搜索的模式。可以使一个字符串或字符串数组。
replacement 用于替换的字符串或字符串数组。
subject 要进行搜索和替换的字符串或字符串数组。
limit 每个模式在每个subject上进行替换的最大次数。默认是 -1(无限)。
count 如果指定,将会被填充为完成的替换次数。
返回值:

如果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
参数:
名称 说明
pattern 要搜索的模式
input 输入数组
flags 标识
参数 `$flags` :
如果设置为PREG_GREP_INVERT, 这个函数返回输入数组中与给定模式pattern不匹配的元素组成的数组。

lastError()

返回最后一个PCRE正则执行产生的错误代码

public static function lastError () : int

matchAll()

执行一个全局正则表达式匹配

public static function matchAll (

    string $pattern,

    string $subject,

    array &$matches = null,

    int $flags = 1,

    int $offset = 0

) : int
参数:
名称 说明
pattern 要搜索的模式,字符串形式。
subject 输入字符串。
matches 多维数组,作为输出参数输出所有匹配结果
flags 数组排序通过flags指定。
offset 用于从目标字符串中指定位置开始搜索(单位是字节)。
返回值:

返回完整匹配次数(可能是0),或者如果发生错误返回FALSE。

match()

执行一个正则表达式匹配

public static function match (

    string $pattern,

    string $subject,

    array &$matches = null,

    int $flags = 0,

    int $offset = 0

) : int
参数:
名称 说明
pattern 要搜索的模式,字符串形式。
subject 输入字符串。
matches 搜索结果
flags flags可以被设置为以下标记值: PREG_OFFSET_CAPTURE
offset 偏移位置
返回值:

返回 pattern 的匹配次数

参数 `$matches` :
  如果提供了参数matches,它将被填充为搜索结果。
  $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
参数 `$$offset` :
  可选参数 offset 用于 指定从目标字符串的某个未知开始搜索(单位是字节)
返回值将是0次(不匹配)或1次,因为Preg::match()在第一次匹配后 将会停止搜索。

quote()

转义正则表达式字符

public static function quote (

    string $str,

    string $delimiter = null

) : string
参数:
名称 说明
str 输入字符串
delimiter 分隔符
返回值:

返回转义后的字符串。

参数 `$delimiter` :
如果指定了可选参数 delimiter,它也会被转义。
这通常用于 转义PCRE函数使用的分隔符。 /是最通用的分隔符。

replaceCallbackArray()

使用回调执行正则表达式搜索和替换

public static function replaceCallbackArray (

    array $patterns_and_callbacks,

    mixed $subject,

    int $limit = -1,

    int &$count = null

) : mixed
参数:
名称 说明
patterns_and_callbacks 关联数组将模式(键)映射到回调(值)。
subject 要搜索和替换字符串的字符串或数组。
limit 最大可能替换次数
count 返回被替换的次数
参数 `$limit` :
每个主题字符串中每个模式的最大可能替换。默认为-1(没有限制)

replaceCallback()

执行一个正则表达式搜索并且使用一个回调进行替换

public static function replaceCallback (

    mixed $pattern,

    callable $callback,

    mixed $subject,

    int $limit = -1,

    int &$count = null

) : mixed
参数:
名称 说明
pattern 要搜索的模式,可以使字符串或一个字符串数组。
callback 一个回调函数,在每次需要替换时调用
subject 要搜索替换的目标字符串或字符串数组。
limit 最大可替换次数
count 如果指定,这个变量将被填充为替换执行的次数。
返回值:

如果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
参数:
名称 说明
pattern 要搜索的模式。可以使一个字符串或字符串数组。
replacement 用于替换的字符串或字符串数组。
subject 要进行搜索和替换的字符串或字符串数组。
limit 替换的最大次数
count 如果指定,将会被填充为完成的替换次数。
返回值:

如果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 最大次数
flags flags 标识
返回值:

返回一个使用 pattern 边界分隔 subject 后得到 的子串组成的数组。

参数 `$limit` 
  如果指定,将限制分隔得到的子串最多只有limit个,返回的最后一个 子串将包含所有剩余部分。
  limit值为-1 0或null时都代表"不限制"
  作为php的标准,你可以使用null跳过对flags的设置。
参数 `$flags` 
  可以是任何下面标记的组合(以位或运算 | 组合)
  PREG_SPLIT_NO_EMPTY、PREG_SPLIT_DELIM_CAPTURE、PREG_SPLIT_OFFSET_CAPTURE