首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WordPress正则表达式未按预期工作

WordPress正则表达式未按预期工作
EN

Stack Overflow用户
提问于 2016-11-18 07:06:29
回答 3查看 272关注 0票数 1

我需要将像user-profile/id=3这样的字符串放入regex表单中。我试过'user-profile/id=\d+$''user-profile/([a-z][.][0-9]+)/?$',但它们都不起作用。正确的方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-18 07:58:36

由于您的字符串始终采用上述格式,因此不需要正则表达式。使用简单的分解

代码语言:javascript
复制
explode("/", $s)[1]

这个演示

另一种非正则化方法:使用斯特斯特尔/之后获取子字符串,并包含/,然后从1 char获取底座ing:

代码语言:javascript
复制
substr(strstr($s, "/"),1);

请参阅另一个PHP演示

票数 2
EN

Stack Overflow用户

发布于 2016-11-18 07:20:20

您的问题是,您没有用反斜杠转义/字符。

在解决这个问题之后,您可能立即面临的另一个问题是,您使用的是$字符,这意味着行的结束。如果之后有更多的字符,甚至只有一个空格,那么它就不匹配了。

如果你尝试:

代码语言:javascript
复制
user-profile\/(id=\d+)

你可能会发现它匹配得很好。我添加的括号将捕获捕获组#1中的id=3

票数 1
EN

Stack Overflow用户

发布于 2016-11-18 07:20:33

如果您只想提取id=3,我建议使用preg_replace。比如:

代码语言:javascript
复制
$str = 'user-profile/id=3';
$after_preg = preg_replace('/user-profile\//', '', $str);
echo $after_preg;

如果您只想得到一个数字,可以如下所示:

代码语言:javascript
复制
$str = 'user-profile/id=3';
$after_preg = preg_replace('/user-profile\/id=/', '', $str);
echo $after_preg;

关于它的更多信息,您可以在替换中阅读

如果要检查字符串是否类似于user-profile/id=3,可以使用regex:

代码语言:javascript
复制
user-profile\/id=\d*
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40671232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档