【问题标题】:Trim characters in Mule4 using Dataweave使用 Dataweave 在 Mule4 中修剪字符
【发布时间】:2023-03-24 14:01:01
【问题描述】:

我正在尝试使用修剪功能修剪 dataweave 中的字符

输入:“C#-01-20875 DB_GDTest”

如何修剪直到上面字符串中的空格

我正在使用的代码如下

%dw 2.0
output application/json
var ab = "C##-01-20875  DB_GDTest" as String
---
trim(ab)

预期的输出是 "C##-01-20875"

我怎样才能做到这一点?

【问题讨论】:

    标签: trim dataweave mule4


    【解决方案1】:

    我听说过的每种语言中的每个 trim() 函数都会删除字符串两端的空格,而不是中间的空格。您想要的是删除第一个空格后所有内容的功能。我建议为此创建您自己的自定义函数。

    如果您使用的是 Mule 4.2.0 或更高版本,我建议使用 substringBefore() 函数:

    %dw 2.0
    output application/json
    import * from dw::core::Strings
    var ab = "C##-01-20875  DB_GDTest" as String
    fun removeFromSpace(s)=substringBefore(s, " ")
    ---
    removeFromSpace(ab) 
    

    对于 Mule 4.1,您可以使用正则表达式来获得相同的结果,但可能效率较低:

    %dw 2.0
    output application/json
    var ab = "C##-01-20875  DB_GDTest" as String
    fun removeFromSpace(s)=s replace /\s.*/ with("")
    ---
    removeFromSpace(ab) 
    

    或查看@olamiral 版本了解不同的方法。

    【讨论】:

      【解决方案2】:

      您可以尝试以下 DataWeave 表达式:

      %dw 2.0
      output application/json
      var ab = "C##-01-20875  DB_GDTest" as String
      ---
      splitBy(ab, " ")[0]
      

      【讨论】:

        猜你喜欢
        • 2022-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-27
        • 2019-08-22
        • 2011-01-06
        • 1970-01-01
        • 2017-01-02
        相关资源
        最近更新 更多