如何在Freemarker中使用正则表达式(\ b,\ w)?

时间:2013-12-05 08:14:28

标签: regex freemarker

${str?replace("\d+", "", "r")};

我想使用\d删除数字,但它不起作用!!!

${str?replace("[0-9]", "", "r")};有效!!!

所以,我想知道如何使用\d\b\w等正则表达式?

1 个答案:

答案 0 :(得分:7)

你需要加倍反斜杠:

${str?replace("\\d+", "", "r")};

这是因为在正则表达式转义规则之前应用了字符串转义规则。因此,字符串"\\d"会转换为正则表达式\d,然后匹配数字。

如果您的字符串是"\d",字符串处理器会将其转换为文字d(因为\d不是可识别的字符串转义序列,因此它被忽略)。