Mule 函数使用正则表达式进行匹配,该函数接受什么样的字符串?

问题描述 投票:0回答:1

任何人都可以帮助我了解此方法中的正则表达式将接受的预期输入字符串是什么?

消息=输入是一个字符串

fun getId(Message) = (Message match /betalning_maltid_\{id:([0-9]+)\}/)[1]

这在使用 mule 和 DataWeave 的 Anypoint Studio 中

我希望使用这个函数 a 来让程序运行,但我在理解它会接受什么样的字符串时陷入了这个问题

我已经尝试过 “betalning_maltid_id:099” “betalning_maltid_099” “099”

根据我对这个方法和正则表达式的理解


消息 = 输入字符串
match = 方法/函数“用于匹配文本中字符的 Java 正则表达式。”
/ = 正则表达式的开始
betalning_maltid_=betalning_maltid_
反斜杠{ = 我读它是因为 dataweave 不应该关心 {
id: = id: 或改变含义,因为它包含在 {} 中
([0-9]+) = 以数字开头,后面都是数字
反斜杠} = 我读它是因为 dataweave 不应该关心 {
/ = 正则表达式的结尾
)[1] = 我们预计至少有两个结果,并且我们想要第二个。


如果我删除 { 和 } 并输入字符串“betalning_maltid_id:564”

var myString = "betalning_maltid_id:564"
myString match /betalning_maltid_id:([0-9]+)/

我得到结果了

[
    "betalning_maltid_id:370",
    "370"
]

我应该如何格式化输入的任何想法仍然在代码中保留 { 和 } 吗?

regex mule dataweave anypoint-studio
1个回答
0
投票

花括号被转义(

\{
\}
),这意味着它们被视为文字。您的输入中缺少它们。

示例:

"betalning_maltid_{id:1234}" match /betalning_maltid_\{id:([0-9]+)\}/

输出:

[
  "betalning_maltid_{id:1234}",
  "1234"
]
© www.soinside.com 2019 - 2024. All rights reserved.