作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在单行正则表达式(或 Java 人员的 DOTALL)方面遇到了一些问题。我想在文档上匹配这些设置指令中的每一个。我的正则表达式是这样的:
\{\%\s*set\s+(\S+)\s*\%\}.+\{\%\s*endset\s*\%\}
我要匹配的目标内容如下所示:
{% set var1 %}
some multiline
really long content
{% endset %}
<other random code>
{% set var2 %}
some multiline
other really long content
{% endset %}
此正则表达式的问题在于,第一个匹配项(并且仅在整个文档中)从第二个代码块开始于 {% set var1 %} 并于 {% endset %} 结束。我尝试使用前向和后向,但没有结果。
有什么建议吗?
谢谢
最佳答案
您需要在 .+
后面加上 ?
以获得 non-greedy 匹配。
\{%\s*set\s+(\S+)\s*%\}.+?\{%\s*endset\s*%\}
^
注意:您不需要转义%
,因为它不被视为具有特殊含义的字符。
关于java - 单行(DOTALL)正则表达式匹配比我想要的更多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24193672/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!