Home  >  Article  >  Backend Development  >  PHP正则的小问题

PHP正则的小问题

WBOY
WBOYOriginal
2016-06-23 13:52:471044browse

    $url = "http://detail.tmall.com/item.htm?id=39583642975&ali_trackid=2:mm_17615479_5728618_19968131,00236231:1406685924_6k5_1303432088&spm=a230z.1.5634029.1.Ch9V0b";

    $preg = "/,([0-9]+):/is";
    preg_match($preg,$url,$a);
    print_r($a);

为什么我用正则的时候用 ^    $  从来都没有成功过,所以我从来都不用这两个符号,现在有点受不了的感觉,就比如上面的句是可以匹配的,但
$preg = "/^,([0-9]+):/is"; 这个肯定不行
$preg = "/^,([0-9]+):$/is"; 这个肯定不行

求高手解释一下为毛不行?


回复讨论(解决方案)

^ 字符串的开头
$ 字符串的结尾

^ 字符串的开头
$ 字符串的结尾



你这等于没说....

你这等于没说....



你的字符串是http开头而不是半角逗号开头,显然匹配不上,我还要说什么...

^     匹配【输入】字符串的开始位置
$    匹配【输入】字符串的结束位置

$preg = "/^,([0-9]+):/i";//只能匹配,00236231:1406685924_6k5_1303432088&spm=a230z.1.5634029.1.Ch9V0b(以你字符串为例)
$preg = "/^,([0-9]+):$/i";//只能匹配,00236231:(以你字符串为例)



你这等于没说....



你的字符串是http开头而不是半角逗号开头,显然匹配不上,我还要说什么...



意思就是用^这个的时候必须是在字符串的最前面那个字符吗?$这个必须是最后的那个?   要从中间取一段的话就不能用了是吗?

^     匹配【输入】字符串的开始位置
$    匹配【输入】字符串的结束位置

$preg = "/^,([0-9]+):/i";//只能匹配,00236231:1406685924_6k5_1303432088&spm=a230z.1.5634029.1.Ch9V0b(以你字符串为例)
$preg = "/^,([0-9]+):$/i";//只能匹配,00236231:(以你字符串为例)




明白了  3Q
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn