正则表达式中或中的问题
我有这个正则表达式:
/\{%\s([^else|endloop|endif][a-z0-9\.\|_]+)\s%\}/si
我在 preg_replace 中使用这个正则表达式。 这个标记:
{# comment %}
{# comment number 2$% %}
{% variable %}
{% array.key1.key2 %}
{% array.key1.key2|escape|bold %}
{% variable|escape %}
{% loop array as item %}
My item is {% item.text %}
{% endloop %}
{% if (something): %}
do something truly
{% else: %}
nothing to do
{% endif; %}
为什么这个正则表达式不适用于 {% item.text %}
但适用于其他? 我认为我在这里犯了一些错误 [^else|endloop|endif]
我做错了什么?
I have this Regexp:
/\{%\s([^else|endloop|endif][a-z0-9\.\|_]+)\s%\}/si
I use this regexp in preg_replace.
And this markup:
{# comment %}
{# comment number 2$% %}
{% variable %}
{% array.key1.key2 %}
{% array.key1.key2|escape|bold %}
{% variable|escape %}
{% loop array as item %}
My item is {% item.text %}
{% endloop %}
{% if (something): %}
do something truly
{% else: %}
nothing to do
{% endif; %}
Why this regexp is not working for {% item.text %}
but works with other?
I think that I made some mistake here [^else|endloop|endif]
What I'm doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想您可能想要:
之前包含
else
、endloop
和endif
关键字的方括号将每个单独的字符视为例外。在这里它们被视为整个字符串。I think you may intend:
The square brackets previously containing the
else
,endloop
andendif
keywords treats each individual character as an exception. Here they are treated as whole strings.