2017-07-25 80 views
0

我有需要一個大的字符串拆分成基於段落「 - 」在一個單一的線及以下字符串Java的劈裂串入段

access.log-2017-07-10 05:30:02 127.0.0.1 GET 200 58944 0.079 - "" - - - - - /platform/scheduler/logout.jsp 9148257800613007309 - - - - - - - - - 
access.log-2017-07-10 05:45:00 127.0.0.1 POST 200 10 0.084 "55" "" - - - - - /platform/scheduler/login.jsp 9148257800613007349 - - - - - - - - - 
access.log-2017-07-10 05:45:00 127.0.0.1 GET 302 333 0.02 - "test123" - - - - - /report/scheduler/schedule.jsp?notify=y 9148257800613007349 - - - - - - - - - 
access.log-2017-07-10 05:45:00 127.0.0.1 GET 200 168427 0.171 - "" - - - - - /report/reports.jsp?report=6030654077013281451 9148257800613007349 - - - - - - - - - 
access.log-2017-07-10 05:45:00 127.0.0.1 GET 200 58944 0.034 - "" - - - - - /platform/scheduler/logout.jsp 9148257800613007349 - - - - - - - - - 
access.log:2017-07-10 05:59:05 10.233.32.75 POST 302 325 3.189 "133" "" - - - - - /login.jsp 9148257800613007357 - - - - - - - - "http://10.112.251.31:6300/login.jsp?redirectKey=_from_url_e4600ddc-2c02-4c85-9eff-83bee5457c14" kranthi123 
access.log-2017-07-10 05:59:06 10.233.32.75 GET 200 30119 1.422 - "" - - - - - /ncobject.jsp?id=9137288153213290331 9148257800613007357 - - - - - - - - "http://10.112.251.31:6300/login.jsp?redirectKey=_from_url_e4600ddc-2c02-4c85-9eff-83bee5457c14" 
access.log-2017-07-10 05:59:07 10.233.32.75 GET 200 32 0.009 - "" - - - - - /CSServlet 9148257800613007357 - - - - - - - - "http://10.112.251.31:6300/ncobject.jsp?id=9137288153213290331" 
access.log-2017-07-10 05:59:07 10.233.32.75 GET 404 52534 0.454 - "" - - - - - /scripts/jquery/form-styler/jquery/jquery.formstyler/jquery.formstyler.min.js 9148257800613007357 - - - - - - - - "http://10.112.251.31:6300/ncobject.jsp?id=9137288153213290331" 
-- 
start_check_state.log- 
start_check_state.log-Initializing WebLogic Scripting Tool (WLST) ... 
start_check_state.log- 
start_check_state.log:Welcome to WebLogic Server Administration Scripting Shell kranthi123 
start_check_state.log- 
start_check_state.log-Type help() for help on available commands 
start_check_state.log- 
start_check_state.log-Connecting to t3://0.0.0.0:6300 with userid system ... 
start_check_state.log-Successfully connected to Admin Server 'devSrv25131' that belongs to domain 'dev'. 
-- 
start_check_state.log- 
start_check_state.log-Initializing WebLogic Scripting Tool (WLST) ... 
start_check_state.log- 
start_check_state.log:Welcome to WebLogic Server Administration Scripting Shell kranthi123 
start_check_state.log- 
start_check_state.log-Type help() for help on available commands 
start_check_state.log- 
start_check_state.log-Connecting to t3://0.0.0.0:6300 with userid system ... 
start_check_state.log-Successfully connected to Admin Server 'devSrv25131' that belongs to domain 'dev'. 

我已經在很多方面進行拆分他們都沒有工作

下面是我已經使用的幾個。

split("\n--\n"); 
split("^\\s"); 
split("\\n--\\n") 

他們都沒有工作

+0

''''另請參閱https://stackoverflow.com/questions/454908/split-java-string-by-new-line –

+0

@ScaryWombat試圖它不起作用 – user2727493

+0

檢查新行字符正在使用 –

回答

2

使用這個表達式:(?m)^--$\R?

  • (?m)允許多模式
  • ^匹配行
  • --比賽的開始字符--
  • $匹配行的末尾
  • \R?任選地匹配斷行

即匹配一條只包含兩條​​破折號(-)字符的行,包括行結尾的換行符(如果存在)。

從Java代碼,即:

String[] paragraphs = input.split("(?m)^--$\\R?"); 

舉證見IDEONE