正则一直是我的短板。以下是收集的一些例子
http://www.php100.com/html/program/jquery/2013/0905/5959.html
:
1:需求,形如字符串 “21-78区TapTeam阳光” ,开始是数字,中间一横杆,然后继续是数字,然后是一个 “区”,然后后面连接一串字符串,要将开始数字,横杆后第一串数字,“区” 后面的字符串匹配出来。
代码如下:
$pattern = '/(\d+)\-(\d+)区(.*)/';
$dirvalue = '21-78区TapTeam阳光';
preg_match($pattern,$dirvalue, $arr);
//得到的匹配值:
$arr = Array
(
[0] => 21-78区TapTeam阳光
[1] => 21
[2] => 78
[3] => TapTeam阳光
)
官方对preg_match的解释是:
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
pattern
要搜索的模式,字符串类型。
subject
输入字符串。
matches
如果提供了参数matches,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
再来看这段正则:$pattern = '/(\d+)\-(\d+)区(.*)/';第一个匹配文本用()括起来,(\d+),然后是连接符 ‘-’,
下一个匹配文本(\d+),然后是连接符 ‘区’,然后接着是下一个文本(.*),如此,三个匹配需要的文本就匹配出来了,若更多的话,根据当前规则,继续添加即可
str_replace支持数组替换:
$time = date('Y年m月d日',time());
http://www.php100.com/html/program/jquery/2013/0905/5959.html
:
1:需求,形如字符串 “21-78区TapTeam阳光” ,开始是数字,中间一横杆,然后继续是数字,然后是一个 “区”,然后后面连接一串字符串,要将开始数字,横杆后第一串数字,“区” 后面的字符串匹配出来。
代码如下:
$pattern = '/(\d+)\-(\d+)区(.*)/';
$dirvalue = '21-78区TapTeam阳光';
preg_match($pattern,$dirvalue, $arr);
//得到的匹配值:
$arr = Array
(
[0] => 21-78区TapTeam阳光
[1] => 21
[2] => 78
[3] => TapTeam阳光
)
官方对preg_match的解释是:
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
pattern
要搜索的模式,字符串类型。
subject
输入字符串。
matches
如果提供了参数matches,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
再来看这段正则:$pattern = '/(\d+)\-(\d+)区(.*)/';第一个匹配文本用()括起来,(\d+),然后是连接符 ‘-’,
下一个匹配文本(\d+),然后是连接符 ‘区’,然后接着是下一个文本(.*),如此,三个匹配需要的文本就匹配出来了,若更多的话,根据当前规则,继续添加即可
str_replace支持数组替换:
$time = date('Y年m月d日',time());
echo strtotime(substr(str_replace(array('年','月','日'),'-',$time),0,-1));
2、正则表达式在线测试地址:
3、将字符串中的字母替换成*号
echo preg_replace("/[a-z]/i","*",'12aAbcd23');
preg_replace("/(\d+)([a-z])/","\$1--\$2",'12asd') . "<br/><br/>";
1、$1,$2...$n表示正则中括号匹配出来的对应的参数
2、preg_replace第二个参数必须用双引号,而不是用单引号
4、notepad++查找替换指定字符
形如:
'phone' => $datas['phone'],
'recommend_name' => $datas['recommend_name'],
'recommend_phone' => $datas['recommend_phone'],
需要替换成:
'phone',
'recommend_name',
'recommend_phone',
正则为:
(=>.*)
替换为:
,