2012-09-28 163 views
0

我必須採用以下文本格式,我想使用模板提取內容。正則表達式,字符串操作

值{ABC,XYZ ...} | {消息這是測試消息}

當我上面的字符串遇到我想沒有解析,以提取「價值」和「消息」的內容整個字符串在Java中。

正則表達式有可能嗎?

+0

「是」可能不是你期待的答案:)。一邊開玩笑,這是你所期望的文本格式的唯一形式嗎? –

+0

是價值和消息總是隨後括號? – PermGenError

+0

我會建議你[解析它沒有正則表達式,如果你可以](http://programmers.stackexchange.com/questions/10998/what-does-the-jamie-zawinskis-quotation-about-regular-expressions-mean) 。正如Jamie Zawinski所說:「有些人在遇到問題時想'我知道,我會用正則表達式'。現在他們有兩個問題。「 – Kiril

回答

1

是的,這是可能的正則表達式,假設的格式並沒有改變。

http://rubular.com/r/R8WIonv6Oj < - 請點擊此鏈接舉例。

Value\{(.*)\}\|Message\{(.*)\} 

在花括號之間有兩個匹配的組。但是,你可以很容易地做到這一點,而不訴諸於正則表達式

0

如果你的字符串總是你所提到的格式,下面的代碼工作...

String s = "Value{ABC,XYZ...}|Message{This is test message}"; 
System.out.println(s.split("value")[0].split("\\{")[1].split("}")[0]); //prints ABC,XYZ... 
System.out.println(s.split("Message")[1].split("\\{")[1].split("}")[0]); //prints This is test message