我必須採用以下文本格式,我想使用模板提取內容。正則表達式,字符串操作
值{ABC,XYZ ...} | {消息這是測試消息}
當我上面的字符串遇到我想沒有解析,以提取「價值」和「消息」的內容整個字符串在Java中。
正則表達式有可能嗎?
我必須採用以下文本格式,我想使用模板提取內容。正則表達式,字符串操作
值{ABC,XYZ ...} | {消息這是測試消息}
當我上面的字符串遇到我想沒有解析,以提取「價值」和「消息」的內容整個字符串在Java中。
正則表達式有可能嗎?
是的,這是可能的正則表達式,假設的格式並沒有改變。
http://rubular.com/r/R8WIonv6Oj < - 請點擊此鏈接舉例。
Value\{(.*)\}\|Message\{(.*)\}
在花括號之間有兩個匹配的組。但是,你可以很容易地做到這一點,而不訴諸於正則表達式
如果你的字符串總是你所提到的格式,下面的代碼工作...
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
「是」可能不是你期待的答案:)。一邊開玩笑,這是你所期望的文本格式的唯一形式嗎? –
是價值和消息總是隨後括號? – PermGenError
我會建議你[解析它沒有正則表達式,如果你可以](http://programmers.stackexchange.com/questions/10998/what-does-the-jamie-zawinskis-quotation-about-regular-expressions-mean) 。正如Jamie Zawinski所說:「有些人在遇到問題時想'我知道,我會用正則表達式'。現在他們有兩個問題。「 – Kiril