因此,我正在遵循用户指南,这似乎很简单,所以我不确定自己做错了什么。我想使用内置的matches
查找字符串中所有小写的单词。因此,以直接来自文档的示例为例,对我的代码进行了一些明显的更改,我总是得到Does not match
的输出。非常感谢您的帮助:
<#assign res = "<UPPERCASE_WORD<lowercase_word>>"?matches("[a-z]+")>
<#if res>
Matches
<#else>
Does not match
</#if>
我在代码和文档之间注意到的一件事是示例中有空格而我没有,但是我怀疑这是一个问题,因为用< >
替换为空格的快速测试没有区别。我当时以为正则表达式不正确或不受Freemarker支持,但是文档直接链接到OracleRegexPattern docs,所以我认为可以。
答案 0 :(得分:0)
如果您不希望精确匹配完全,请不要使用matches:
此内置函数确定字符串完全是否与模式匹配
如果您知道使用正确的正则表达式,
例如对于小写字母然后大写字母使用:
?matches("[a-z]+[A-Z]+")>
答案 1 :(得分:0)
如果您要检查字符串是否包含[a-z]
某处,则正则表达式应为".*[a-z]+.*"
,因为?matches
会检查模式是否与整个字符串。