我需要将像user-profile/id=3这样的字符串放入regex表单中。我试过'user-profile/id=\d+$'和'user-profile/([a-z][.][0-9]+)/?$',但它们都不起作用。正确的方法是什么?
发布于 2016-11-18 07:58:36
由于您的字符串始终采用上述格式,因此不需要正则表达式。使用简单的分解
explode("/", $s)[1]见这个演示。
另一种非正则化方法:使用斯特斯特尔在/之后获取子字符串,并包含/,然后从1 char获取底座ing:
substr(strstr($s, "/"),1);请参阅另一个PHP演示
发布于 2016-11-18 07:20:20
您的问题是,您没有用反斜杠转义/字符。
在解决这个问题之后,您可能立即面临的另一个问题是,您使用的是$字符,这意味着行的结束。如果之后有更多的字符,甚至只有一个空格,那么它就不匹配了。
如果你尝试:
user-profile\/(id=\d+)你可能会发现它匹配得很好。我添加的括号将捕获捕获组#1中的id=3。
发布于 2016-11-18 07:20:33
如果您只想提取id=3,我建议使用preg_replace。比如:
$str = 'user-profile/id=3';
$after_preg = preg_replace('/user-profile\//', '', $str);
echo $after_preg;如果您只想得到一个数字,可以如下所示:
$str = 'user-profile/id=3';
$after_preg = preg_replace('/user-profile\/id=/', '', $str);
echo $after_preg;关于它的更多信息,您可以在替换中阅读
如果要检查字符串是否类似于user-profile/id=3,可以使用regex:
user-profile\/id=\d*https://stackoverflow.com/questions/40671232
复制相似问题