Php 用于在细枝中匹配数字的正则表达式
我有一条这样的路线 管理员/申请人/1111/查看 我试着用树枝抓住那条路线,就像这样:Php 用于在细枝中匹配数字的正则表达式,php,regex,twig,Php,Regex,Twig,我有一条这样的路线 管理员/申请人/1111/查看 我试着用树枝抓住那条路线,就像这样: {% if route matches '#admin\/applicants\/\d+\/view#' %} route matched {% else %} not matched {% endif %} 它应该匹配,经过测试,工作完美 我如何解决这个问题 您可能只想使用[0-9]而不是\d,这可能会解决您的问题: 代码: 输出 您可能只想使用[0-9]而不是\d,这可能会
{% if route matches '#admin\/applicants\/\d+\/view#' %}
route matched
{% else %}
not matched
{% endif %}
它应该匹配,经过测试,工作完美
我如何解决这个问题 您可能只想使用
[0-9]
而不是\d
,这可能会解决您的问题:
代码:
输出
您可能只想使用
[0-9]
而不是\d
,这可能会解决您的问题:
代码:
输出
虽然是正确的,但请记住,您需要“转义”源代码中\d
前面的反斜杠,否则细枝将转换为\d
文本d
{% if route matches '#admin\/applicants\/\\d+\/view#' %}
route matched
{% else %}
not matched
{% endif %}
编译的PHP源代码
if (preg_match("#admin/applicants/d+/view#", (isset($context["route"])
正如您所看到的,编译后的php源代码只翻译成d+
。添加一个额外的反斜杠“解决”了这个问题(请参见第行上方的代码)如果正确,请记住您需要“转义”\d
前面的反斜杠,否则细枝将在源代码中转换为\d
{% if route matches '#admin\/applicants\/\\d+\/view#' %}
route matched
{% else %}
not matched
{% endif %}
编译的PHP源代码
if (preg_match("#admin/applicants/d+/view#", (isset($context["route"])
正如您所看到的,编译后的php源代码只翻译成d+
。添加一个额外的反斜杠“解决”了这个问题(请参见第行上方的代码)试试这个“/”admin\/申请人\/\d+\/查看“/”试试这个“/”admin\/申请人\/\d+\/查看“/”我选择你的答案而不是@Emma,因为它更详细地说明了发生了什么。谢谢。我选择你的答案而不是@Emma,因为它更详细地描述了发生了什么。谢谢
if (preg_match("#admin/applicants/d+/view#", (isset($context["route"])