【问题标题】:extract specific number from string after a substring在子字符串之后从字符串中提取特定数字
【发布时间】:2022-08-10 07:44:43
【问题描述】:

从输入字符串中提取 \"-PRJ-\" 之后的数字。 下面的 DataWeave 代码在输入 1 上工作正常,但在输入 2 上失败,因为它在 \"-PRJ-\" 之前有一个先前的数字。

%dw 2.0
output application/java
fun projName (name)= flatten(name scan/\\d/) joinBy \"\" first 6
---
projName(invoiceLines.account.name)

输入:

  • 输入案例 1:\"Media LLC-PRJ-115503IT T&E-8800 信息技术\"
  • 输入案例 2:\"Media-29 LLC-PRJ-115548IT T&E-8800 信息技术\"

输入 1 的预期输出为 115503,输入 2 的预期输出为 115548

  • 你的字符串总是... LLC-PRJ-,然后是6个数字吗?
  • 它总是有 -PRJ- 和 6 个数字,LLC 可选
  • 解决方案有效吗?
  • 它工作得很好

标签: dataweave mulesoft mule4


【解决方案1】:

您可以使用函数 substringAfter() 获取“-PRJ-”之后的字符串,然后使用 first() 提取结果子字符串的前 6 个字符。

我创建了一个函数 getProjectName() 作为示例。我正在使用一个包含两个输入字符串的数组来显示每个字符串的输出。

%dw 2.0
output application/java
import * from dw::core::Strings
fun getProjectName(s)=substringAfter(s, "-PRJ-") first 6
---
payload map getProjectName($)

输入:

[ 
    "Media LLC-PRJ-115503 IT T&E-8800 Information Technology",
    "Media-29 LLC-PRJ-115548 IT T&E-8800 Information Technology"
]

输出:

[115503, 115548]

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2012-09-16
    相关资源
    最近更新 更多