我无法为我的目的提出正则表达式。我正在努力寻找与此相近的东西
(?!\{%)\s*endfor\s*%}
但它没有按照我的意愿工作。
它应该找到无效的用途,如:
- % endfor %}
- % endfor %}
- { % endfor %}
- endfor %}
- {% something valid %} % endfor %}
但不应找到有效用途,例如:
- {% endif %}
- {% endif %}
- {%endif%}
// multiline
- {%
- endif
- %}
答案 0 :(得分:1)
为什么你不在匹配中使用否定因此用你的正则表达式来检测错误的情况,你可以使用!match
代替:
if(!str.matches("\\{\\%\\s*endfor\\s*\\%\\}")){
//-^-------------------------------------------------
//do this
}