Split strings to sentences and save punctuation mark at the end by regex java -


so, have text

string s = "the if-then-else statement provides secondary path of execution when "if" clause evaluates false. use if-then-else statement in applybrakes method take action if brakes applied when bicycle not in motion. in case, action print error message stating bicycle has stopped." 

i need split string in sentences save punctuation mark @ end of sentence, cant use this:

s.split("[\\.|!|\\?|:] "); 

because if use receive this:

the if-then statement basic of control flow statements tells program execute section of code if particular test evaluates true example, bicycle class allow brakes decrease bicycle's speed if bicycle in motion 1 possible implementation of applybrakes method follows: 

and i'm loosing punctuation mark @ end, how can it?

first of regex [\\.|!|\\?|:] represents . or | or ! or | or ? or | or : because used character class [...]. wanted use (\\.|!|\\?|:) or better [.!?:] (i not sure why want : here, choice).

next thing if want split on space , make sure . or ! or ? or : character before not consume preceding character use look-behind mechanism,

split("(?<=[.!?:])\\s") 

but best approach using proper tool splitting sentences, breakiterator. can find example of usage in question: split string sentences based on periods


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -