background image

PHP

基础教学 如何在 PHP 中使用正则表达式进行查找替换

本文为大家分析 PHP 中使用正则表达式进行查找替换的方法,需要的朋友参考下
1. preg_match — 执行一个正则表达式匹配
int preg_match ( string 

$pattern

 , string 

$subject

 [, 

array

 &

$matches

 [, int 

$flags

 = 0 [, int 

$offset 

= 0 ]]] )
搜索 subject 与 pattern 给定的正则表达式的一个匹配. 
pattern:
要搜索的模式,字符串类型。
subject :

 

输入字符串。
matches:
如果提供了参数 matches

 

,它将被填充为搜索结果。

$matches

[0]将包含完整模式匹配到的

 

文本,

$matches

[1]将包含第一个捕获子组匹配到的文本,以此类推。

flags:
flags 可以被设置为以下标记值:PREG_OFFSET_CAPTURE 如果传递了这个标记,对于
每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)  

。注意:这会改变填

充到 matches

 

参数的数组,使其每个元素成为一个由 第 0 个元素是匹配到的字符串,第 1

 

个元素是该匹配字符串 在目标字符串 subject 中的偏移量。
offset:

 

通常,搜索从目标字符串的开始位置开始。可选参数 offset 

 

用于 指定从目标字符串的某个

未知开始搜索(单位是字节)。
返回值:
preg_match()

 

返回 pattern 

 

的匹配次数。 它的值将是 0 次(不匹配)或 1 次,因为 

preg_match()

 

 

在第一次匹配后 将会停止搜索。 preg_match_all()不同于此,它会一直搜索

subject

 

 

直到到达结尾。 如果发生错误 preg_match()

 

返回 FALSE。

示例:

 

复制代码 代码如下:
 
<?php

/*
*模式分隔符后的"i"标记这是一个大小写不敏感的搜索
*将会输出:1
*/

echo

 preg_match("/,\s*(php)/i", "In my point, PHP is the web scripting language of choice.");

echo

 "<br/>"."\n";

/*