You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSTL fn:split函数分割异常求助:~$分割符未按预期工作

解决JSTL fn:split分割字符串不符合预期的问题

嘿,我来帮你搞定这个问题!你遇到的情况是因为JSTL的fn:split函数使用正则表达式作为分隔符,而你用的$是正则里的特殊元字符,没转义才导致了意外结果。

问题原因

在正则表达式里,$是表示字符串或行结尾的特殊元字符。你直接写'~$'当分隔符时,正则引擎不会把它当成字面量的~$组合来匹配,反而会解析成“匹配位于字符串末尾的~”,这完全不符合你想匹配~$固定序列的需求。原字符串里的单独$也会被错误解析,导致额外的分割,最终得到了三个部分。

解决方案

要匹配字面量的$,你得在正则里用\转义它;同时在JSP的EL表达式中,反斜杠\本身也需要再转义一次(因为EL会把单个\当成转义符),所以最终的分隔符要写成'~\\$'。

修改后的代码:

<c:set var="stringArrayName" value="${fn:split(element, '~\\$')}" />

这样正则引擎就能正确识别~$作为完整的分隔符序列,分割你的字符串"abc~$pqr$xyz"后,就能得到你预期的两个部分:abc和pqr$xyz啦。

内容的提问来源于stack exchange,提问作者Vishal Gajera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:24:16