簡體   English   中英

使用Pattern Java中的正則表達式

[英]Regular Expressions in Using Pattern java

我有一個字符串如下。

$Alarm:com.Alarm(a  ==  123 || (count  ==  12345 , time  matches  "24"))

每當遇到上面的字符串時,我都需要生成以下字符串。我的意思是我需要在字符串后面附加“來自Stream”。

$Alarm:com.Alarm(a  ==  123 || (count  ==  12345 , time  matches  "24")) from Stream.

我目前正在使用以下模式在Java中實現相同的功能。

Pattern eventPattern = Pattern.compile(".*?\\.Alarm\\(.*?\\)");

但是我得到以下輸出。

$Alarm:com.Alarm(a  ==  123 || (count  ==  12345 , time  matches  "24") from Stream )

請向我提供一些指針以實現正確的輸出。正則表達式應僅考慮最后一個括號。

您需要在模式中包含匹配的括號。 類似於以下內容:

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

直到並包括第一個打開的括號的內容: .*?\\\\.Alarm\\\\(

在內部任何內部括號之外的內容: [^\\\\(]*?

內部對對: \\\\([^\\\\)]*?\\\\)

匹配在parens外部或parens對內的任意數量的東西: ([^\\\\(]*?|\\\\([^\\\\)]*?\\\\))*

這個RegexPlanet網站是一個與正則表達式一起玩的好地方,以查看將如何工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM