在php中用正则表达式查找字符串

时间:2014-03-24 13:50:36

标签: php regex string

我是正则表达式的新手,因此我通过php手册进行正则表达式并尝试了以下内容:

我有一个这样的字符串:

c-1

c-10

c-100依此类推至c-unlimited

现在我要确认字符串是一个有效的字符串,以c-开头,而c-后只包含数字..

为了完成这项工作,我使用了preg_match

$slug='c-12';

if(preg_match("/\[c-(.*?)]/",$slug,$result)){ echo "TRUE";}
else{ echo "FALSE"; }

也是这样:

$pattern = '/^c-/';
if(preg_match($pattern, substr($slug,2), $matches, PREG_OFFSET_CAPTURE){ echo "TRUE";}
else{ echo "FALSE"; }

还有这个:

$pattern = '/^c-/';
if(preg_match($pattern, $slug, $matches, PREG_OFFSET_CAPTURE, 3){ echo "TRUE";}
else{ echo "FALSE"; }

还有一件事我还想从头开始验证字符串。如下所示:

 $slug="my-string-content-123";

这里我想验证字符串是否包含-

之后的结尾处的数字

示例123

但是我无法让它工作......我很抱歉我的英语不好......

任何帮助或建议都会有很大的帮助..在此先感谢..

2 个答案:

答案 0 :(得分:2)

对于常见(不仅仅是c-)案例:

$slug="my-string-content-123";
if(preg_match('/([^0-9]+)-([0-9]+)$/', $slug, $matches))
{
   //prefix is in $matches[1];
   //the number is in $matches[2];
}

答案 1 :(得分:1)

试试这个:

preg_match("/^c-\d+$/",$slug,$result);

^c- =以c-

开头

\d+ = 1位或更多位数

$ =字符串结尾