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*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。