我是正则表达式的新手,因此我通过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
但是我无法让它工作......我很抱歉我的英语不好......
任何帮助或建议都会有很大的帮助..在此先感谢..
答案 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位或更多位数
$
=字符串结尾