Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 正则表达式匹配必须转义的字符_Regex_Smarty - Fatal编程技术网

Regex 正则表达式匹配必须转义的字符

Regex 正则表达式匹配必须转义的字符,regex,smarty,Regex,Smarty,我在这里写了这个正则表达式: \{t\s+i=['|"]([\w\s*]+)['|"]} 它与此处引号内的任何内容都匹配: {t i="example_match"} 现在,如果是这样,我如何匹配引号内的字符串 {t i="{$title.$action}"} 这似乎是一个可行的方案: \{t\s+i=['"]([\w\s*\{\$\w\.\$\w}]+)['"]} ['|“]不会做你认为它会做的事。如果你想匹配单引号或双引号,你只需要['”]。那是行不通的。字符类中没有|(“或”)。在

我在这里写了这个正则表达式:

\{t\s+i=['|"]([\w\s*]+)['|"]}
它与此处引号内的任何内容都匹配:

{t i="example_match"}
现在,如果是这样,我如何匹配引号内的字符串

{t i="{$title.$action}"}

这似乎是一个可行的方案:

\{t\s+i=['"]([\w\s*\{\$\w\.\$\w}]+)['"]}

['|“]
不会做你认为它会做的事。如果你想匹配单引号或双引号,你只需要
['”]
。那是行不通的。字符类中没有
|
(“或”)。
在这里没有任何意义。它更像是这样:
{t\s+i=[''”([\w\s]*\{$\w+\\.\$\w+\})\1}
是的,但它会匹配
{t i=\example\u match}
,我认为它不应该匹配。除此之外,你的内部表达式(
[\w\s*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。