Freemarker regex并非在所有小写子字符串上都匹配

时间:2019-03-05 23:46:45

标签: java regex freemarker

因此,我正在遵循用户指南,这似乎很简单,所以我不确定自己做错了什么。我想使用内置的matches查找字符串中所有小写的单词。因此,以直接来自文档的示例为例,对我的代码进行了一些明显的更改,我总是得到Does not match的输出。非常感谢您的帮助:

<#assign res = "<UPPERCASE_WORD<lowercase_word>>"?matches("[a-z]+")>
  <#if res>
     Matches
  <#else>
     Does not match
  </#if>

我在代码和文档之间注意到的一件事是示例中有空格而我没有,但是我怀疑这是一个问题,因为用< >替换为空格的快速测试没有区别。我当时以为正则表达式不正确或不受Freemarker支持,但是文档直接链接到OracleRegexPattern docs,所以我认为可以。

2 个答案:

答案 0 :(得分:0)

如果您不希望精确匹配完全,请不要使用matches

  

此内置函数确定字符串完全是否与模式匹配

如果您知道使用正确的正则表达式,

例如对于小写字母然后大写字母使用:

?matches("[a-z]+[A-Z]+")>

答案 1 :(得分:0)

如果您要检查字符串是否包含[a-z] 某处,则正则表达式应为".*[a-z]+.*",因为?matches会检查模式是否与整个字符串。