💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# :-: php正则匹配函数 1. preg_match 执行匹配正则表达式 2. preg_match_all 执行一个全局正则表达式匹配 3. preg_replace 执行一个正则表达式的搜索和替换 4. preg_filter 执行一个正则表达式搜索和替换 5. preg_quote 转义正则表达式字符 6. preg_grep 返回匹配模式的数组条目 7. preg_split 通过一个正则表达式分隔字符串 --- ### 1. `preg_match` 执行匹配正则表达式 **参数**|**描述** ---|--- pattern| 必需。要搜索的模式,字符串类型。(正则表达式) subject| 必需。被查询的字符串。 matches| 可选。搜索结果。 > **示例:** ```php $pattem = '/[0-9]/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk'; $a = preg_match($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 ``` --- ### 2. `preg_match_all` 执行一个全局正则表达式匹配 **参数**|**描述** ---|--- pattern| 必需。要搜索的模式,字符串类型。(正则表达式) subject| 必需。被查询的字符串。 matches| 可选。搜索结果。 > **示例:** ```php $pattem = '/[0-9]/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 ``` --- ### 3. `preg_replace` 执行一个正则表达式的搜索和替换 **参数**|**描述** ---|--- pattern| 必需。要搜索的模式,可以使一个字符串或字符串数组。(正则表达式) replacement| 必需。用于替换的字符串或字符串数组。 subject| 必需。被查询的字符串或字符串数组。 limit| 可选。进行替换的最大次数。默认是 -1(无限)。 > **示例1:** ```php $pattem = '/ouyangke/'; $replacement = '欧阳克'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk llllmmmmssssooopppqqqqrrrrssswwwvvvzzzxxxx ouyangke ouyangke ouyangke zhulaoshi zhulaoshi zhulaoshi ximen ximen ximen '; $a = preg_replace($pattem, $replacement, $subject); var_dump($a); ``` > **示例2:** ```php $pattem = array('/ouyangke/','/ximen/'); $replacement = array('欧阳克','西门大官人'); $subject = array( '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk llllmmmmssssooopppqqqqrrrrssswwwvvvzzzxxxx ouyangke ouyangke ouyangke ', 'ouyangke ouyangke ouyangke zhulaoshizhulaoshi ximen ximen ximen ' ); $a = preg_replace($pattem, $replacement, $subject); var_dump($a); ``` --- ### 4. `preg_filter` 执行一个正则表达式搜索和替换 **参数**|**描述** ---|--- pattern| 必需。要搜索的模式,可以使一个字符串或字符串数组。(正则表达式) replacement| 必需。用于替换的字符串或字符串数组。 subject| 必需。被查询的字符串或字符串数组。 limit| 可选。进行替换的最大次数。默认是 -1(无限)。 > **示例1:** ```php $pattem = '/ouyangke/'; $replacement = '欧阳克'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk llllmmmmssssooopppqqqqrrrrssswwwvvvzzzxxxx ouyangke ouyangke ouyangke zhulaoshi zhulaoshi zhulaoshi ximen ximen ximen '; $a = preg_filter($pattem, $replacement, $subject); var_dump($a); ``` > **示例2:** ```php $pattem = array('/ouyangke/','/ximen/'); $replacement = array('欧阳克','西门大官人'); $subject = array( '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk llllmmmmssssooopppqqqqrrrrssswwwvvvzzzxxxx ouyangke ouyangke ouyangke ', 'ouyangke ouyangke ouyangke zhulaoshizhulaoshi zhulaoshi ximen ximen ximen ' ); $a = preg_filter($pattem, $replacement, $subject); var_dump($a); ``` --- ### 5. `preg_quote` 转义正则表达式字符 **参数**|**描述** ---|--- str| 必需。要转义的字符串。 > **示例:** ```php $subject = '^ouyangke$zhulaoshi=miejue!\ximen&[] '; $a = preg_quote($subject); var_dump($a); ``` --- ### 6. `preg_grep` 返回匹配模式的数组条目 **参数**|**描述** ---|--- pattern| 必需。要搜索的模式,可以使一个字符串。(正则表达式) input| 必需。输入数组 > **示例:** ```php $pattem = '/^(\d+)?\.\d+$/'; $array = array(1, 2, 3.4, 53, 7.9); $a = preg_grep($pattem,$array); var_dump($a); ``` --- ### 7. `preg_split` 通过一个正则表达式分隔字符串 **参数**|**描述** ---|--- pattern| 必需。要搜索的模式,可以使一个字符串。(正则表达式) subject| 必需。被查询的字符串 limit| 可选。分隔得到的子串最多只有limit个。默认是 -1(无限) > **示例:** ```php $pattem = '/[\s,]+/'; $subject = 'ouyangke ouyangke zhulaoshi zhulaoshi ximen ximen'; $a = preg_split($pattem,$subject); var_dump($a); ```