${str?replace("\d+", "", "r")};
我想使用
\d
来删除数字,但它没有生效!!!但是
${str?replace("[0-9]", "", "r")};
有效!!!因此,我想知道如何使用像
\d
、\b
、\w
等正则表达式?${str?replace("\d+", "", "r")};
\d
来删除数字,但它没有生效!!!${str?replace("[0-9]", "", "r")};
有效!!!\d
、\b
、\w
等正则表达式?你需要将反斜杠加倍:
${str?replace("\\d+", "", "r")};
这是因为在应用正则表达式转义规则之前,会先应用字符串转义规则。所以字符串 "\\d"
会被转换为正则表达式 \d
,然后匹配一个数字。"\d"
,字符串处理器将它翻译为字面量 d
(因为 \d
不是被认可的字符串转义序列,所以它被忽略)。\d
翻译成d
;相反,它会显示一个解析错误信息。 - ddekany"\\d+"
可以写为 r"\d+"
,其中的 r
代表“原始”而非正则表达式。在原始字符串中反斜杠不是特殊字符,这使得它们对于正则表达式来说非常实用。 - ddekany
freemaker
是一个基于Java的模板引擎。那么为什么不尝试使用\\d+
呢? - HamZa