Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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
regex php match“;{loop var=";\w_[]";}";_Php_Regex - Fatal编程技术网

regex php match“;{loop var=";\w_[]";}";

regex php match“;{loop var=";\w_[]";}";,php,regex,Php,Regex,我有一根绳子 {loop var=someText} 其中someText可以是:\w或u或[或] 我有这个: /[{loop var=][\w_\[\]][}]/ or /\b{loop var=\b[\w_\[\]]\b}\b/ 需要匹配以下任意一项的整个字符串 {loop var=MainMenu} {loop var=menu[0]} {loop var=Menu_main} 你可以用 /{loop var=[][\w]+}/ 见 当您将[{loop var=]和[\w\u\[\]

我有一根绳子

{loop var=someText}

其中someText可以是:\w或u或[或]

我有这个:

/[{loop var=][\w_\[\]][}]/
or
/\b{loop var=\b[\w_\[\]]\b}\b/
需要匹配以下任意一项的整个字符串

{loop var=MainMenu}
{loop var=menu[0]}
{loop var=Menu_main}
你可以用

/{loop var=[][\w]+}/

当您将
[{loop var=]
[\w\u\[\]]
封装在非量化字符类中时,您创建了匹配1个字符的子模式,而您需要匹配字符序列

详细信息

  • {loop var=
    -文字字符序列
  • [][\w]+
    -字符集中的一个或多个(
    +
    )字符-单词字符(包括
    )、
    ]和
    [`
  • }
    -文字
    }
您可以使用

/{loop var=[][\w]+}/

当您将
[{loop var=]
[\w\u\[\]]
封装在非量化字符类中时,您创建了匹配1个字符的子模式,而您需要匹配字符序列

详细信息

  • {loop var=
    -文字字符序列
  • [][\w]+
    -字符集中的一个或多个(
    +
    )字符-单词字符(包括
    )、
    ]和
    [`
  • }
    -文字
    }

你可以在换行符上分解,在等式上分解这与JavaScript有什么关系吗?你可以改进/评论你的另一个问题。我想如果我在等式上分解,我可以对{loop var=部分进行排序,并得到{and}的排序然后爆炸,我不知道,我想正则表达式看起来cleaner@Nate这在Perl和Bash中更为常见,为什么不添加这些标记呢?你可以在换行符上爆炸,在等式上爆炸这与JavaScript有关吗?你可以改进/评论你的另一个问题。我想如果我在等式上爆炸,我可以将{loop var=part,得到{and}的strpo,然后爆炸,我不知道,我猜正则表达式似乎cleaner@Nate它在Perl和Bash中更为常见,为什么不添加这些标记呢?我运行了以下命令:$string='asdf{loop var=menu[0]}';preg_match('/{loop var=([[\w]+)}/',$string,$matches);var_dump($matches);返回完整字符串(万岁!)和“菜单[0]”,有没有办法阻止它返回“菜单[0]”?如果您不需要该组,请删除
-我编辑了答案。问题是相同的吗?我无法从你之前的问题中了解太多。这是一个直截了当的问题。我将删除另一个问题,并将信息放在这里,如果我这样做,你能重新打开这一个吗?总结一下我试图做的是捕获模板中的开头“循环标记”,而不管它包含的变量是什么ints to,然后用变量的数据替换循环中的标记。我运行以下命令:$string='asdf{loop var=menu[0]}';preg_match('/{loop var=([[\w]+)}/',$string,$matches);var_dump($matches);返回完整字符串(万岁!)和“menu[0]”,是否有任何方法阻止它返回“menu[0]”?如果您不需要该组,请删除
-我编辑了答案。问题是相同的吗?我无法从你之前的问题中了解太多。这是一个直截了当的问题。我将删除另一个问题,并将信息放在这里,如果我这样做,你能重新打开这一个吗?总结一下我试图做的是捕获模板中的开头“循环标记”,而不管它包含的变量是什么ints to,然后用变量的数据替换循环中的标记