gpt4 book ai didi

java - java的正则表达式

转载 作者:行者123 更新时间:2023-11-30 04:37:23 24 4
gpt4 key购买 nike

我有一个如下的字符串。

    $Alarm:com.Alarm(a  ==  123 || (count  ==  12345 || (time  matches  "24" && pqr =="1"))) 
$Event:com.Event(b == 123 || (co == 12345 || (time matches "204" && pqr =="22")))

每当我遇到上述字符串时,我需要生成以下字符串。我的意思是我需要为子字符串 $Alarm:com.Alarm(. ..)"from EventStream" 对于子字符串 $Event:com.Event(...) 如下。

    $Alarm:com.Alarm(a  ==  123 || (count  ==  12345 || (time  matches  "24" && pqr =="1") )) from AlarmStream

$Event:com.Event(b == 123 || (co == 12345 || (time matches "204" && pqr =="22"))) from EventStream

我目前正在使用以下模式在 java 中实现相同的目标。

 Pattern alarmPattern = Pattern.compile(".*?\\.Alarm\\(([^\\(]*?|\\([^\\)]*?\\))*\\)");
Pattern eventPattern = Pattern.compile(".*?\\.Event\\(([^\\(]*?|\\([^\\)]*?\\))*\\)");

但我没有得到正确的输出。

请提供一些指针以实现正确的输出。正则表达式应该只考虑最后一个括号,这里左右括号对的数量不固定。它可能会增加或减少。所以该逻辑应该适用于任何左右括号对的数量。

最佳答案

为什么这里需要 RegEx。我认为即使是这种类型的代码也应该适合您:

if (str.startsWith("$Alarm:com.Alarm"))
str = str + " from AlarmStream";
else if (str.startsWith("$Event:com.Event"))
str = str + " from EventStream";

关于java - java的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com