user2727493
user2727493

Reputation: 143

Java splitting string into paragraphs

I have a big string that needs to be split into paragraphs based on "-- " in a single line and below is the string

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'.

I have used split in so many ways and none of them worked

Below are few of them which i have used.

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

none of them have worked

Upvotes: 0

Views: 392

Answers (1)

Andreas
Andreas

Reputation: 159225

Use this regex: (?m)^--$\R?

  • (?m) Enables multiline mode
  • ^ Match the beginning of a line
  • -- Match the characters --
  • $ Match the end of a line
  • \R? Optionally match a linebreak

I.e. match a line consisting of nothing but two dash (-) characters, including the linebreak ending the line, if present.

As Java code, that is:

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

See IDEONE for proof.

Upvotes: 2

Related Questions