2017-04-25 98 views
-3

我想使用正則表達式分割字符串,我想在java中使用該正則表達式。下面的正則表達式部分工作,但不包括大括號。使用正則表達式分割Java字符串

String to Split: /opt/app/{YYYY}/{MM}/{DD}/{/Xpath/sub/tree}/Archive 
RegEx: {(.*?)} 
Expected Output: 
/opt/app/ 
{YYYY} 
{MM} 
{DD} 
{/Xpath/sub/tree} 
/Archive 

這裏的想法是我想替換{}之間的數據並構造字符串。我也接受任何其他建議。

+0

難道你找到一個解決方案? – MaxZoom

+0

是@MaxZoom。我選擇了RegEx並進行字符串替換並將字符串連接起來。我有一個Java版本限制,否則我可以使用String.join,如你所建議的。 – GSR

回答

-1

您可以使用此正則表達式使用分裂:

/(?=\{)|(?<=})/ 

在Java:

String[] arr = input.split("/(?=\\{)|(?<=})/"); 

RegEx Demo

正則表達式破碎:

  • / - 匹配字面/
  • (?=\{) - 先行斷言下一個字符是{
  • | - OR
  • (?<=}) - 回顧後發斷言前一個字符是}
  • / - 匹配字面/
+0

連續倒票的案例 – anubhava

+0

@SirishReddy:這是否工作? – anubhava

+0

謝謝@anubhava。它的工作,我得到了我想要的輸出。 – GSR

相關問題