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

基于FreeMarker实现以NEFT开头的字符串特定规则处理

解决方案

需求说明

现有变量 X = "NEFT INDBN12025089250 WHISTLE SOLUTIONS LLP INDB0",需输出结果:NEFT INDBN12025089250 WHISTLE SOLUTIONS LLP INDB0 INDBN12025089250,需满足:

  • 仅当字符串以NEFT开头时执行该操作
  • 禁止使用子串截取(因INDBN开头的字段长度不固定)

可行代码(FreeMarker语法)

<#assign X = "NEFT INDBN12025089250 WHISTLE SOLUTIONS LLP INDB0">
<#if X?starts_with("NEFT")>
    <#assign parts = X?split(" ")>
    ${X} ${parts[1]}
</#if>

代码说明

  1. 用?starts_with("NEFT")判断字符串开头,仅满足条件时执行后续逻辑
  2. 通过?split(" ")将原字符串按空格分割为数组,parts[1]即为INDBN开头的字段(无需关心其长度)
  3. 直接拼接原字符串与目标字段,得到最终输出

你尝试过的示例翻译及问题说明

示例1

<#assign TXN_DESC_1="NEFT INDBN12025089250 WHISTLE SOLUTIONS LLP INDB0"?split(" ")> ${TXN_DESC_1[0]} ${TXN_DESC_1[1]} ${TXN_DESC_1[2]} ${TXN_DESC_1[3]} ${TXN_DESC_1[4]} ${TXN_DESC_1[5]} ${TXN_DESC_1[1]}

问题:手动拼接数组元素,若原字符串的空格分隔元素数量变化(比如多一个或少一个),代码会直接报错,扩展性差。

示例2

x = "NEFT INDBN12025089250 WHISTLE SOLUTIONS LLP INDB0" <#list x?split(r'\s*,\s*''r') as x> ${x} </#list>

问题:分割规则错误(用逗号而非空格分割),且语法存在问题,无法正确提取目标字段。

内容的提问来源于stack exchange,提问作者Shivam Bhatt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:11:03