Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于在细枝中匹配数字的正则表达式_Php_Regex_Twig - Fatal编程技术网

Php 用于在细枝中匹配数字的正则表达式

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,这可能会

我有一条这样的路线

管理员/申请人/1111/查看

我试着用树枝抓住那条路线,就像这样:

{% 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"])