正则

4 篇文章 0 订阅
正则一直是我的短板。以下是收集的一些例子
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、正则表达式在线测试地址:

http://regexr.com/

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',

 正则为:

     (=>.*)

替换为:

    ,




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值