我有一个主题对象,其中包含一个邮件地图。键是用户名,值是消息。 有一个用户的名称始终以 User 开头,但以始终更改的子字符串结尾。
我知道只有一个与 UserXXX 模式相对应的用户。
我的目标是根据部分密钥用户获取此消息的密钥。
我尝试使用下面的代码,使用matches
运算符并将其输入正则表达式。
我还尝试使用已知的用户名提取密钥:
$key: String(this in ("User001","User002","User003")) from $keys
但是我的尝试都没有。
rule "Find messages by UserXXX"
when
topic: Topic()
$keys: List() from topic.get("messages").keySet()
$key: String(this matches "User.*") from $keys
then
System.out.println("The full username is " + $key);
end
给出地图:
{
"User001": "Message",
"Jasper": "Message",
"Micks": "Message"
}
我希望将密钥User001
放入变量$key
中。
答案 0 :(得分:0)
我已经测试了另一种方法,它返回了所需的结果:
rule "Find messages by UserXXX"
when
topic: Topic()
$messagesMap: HashMap() from topic.get("messages")
$messageEntry: Entry($userKey : key matches "User.*") from $messagesMap.entrySet()
then
System.out.println("The full username is " + $userKey);
end
在这种尝试中,我过滤了地图项,以获取具有与我的模式匹配的键的项。