java - How to split a string without losing any word? -


i using eclipse java , want split input line without losing characters.

for example, input line is:

ipod6 1 usd6iphone6 16g,64g,128g usd9,usd99,usd999macair 2013-2014 usd123macpro 2013-2014,2014-2015 usd899,usd999 

and desired output is:

ipod6 1 usd6 iphone6 16g,64g,128g usd9,usd99,usd999 macair 2013-2014 usd123 macpro 2013-2014,2014-2015 usd899,usd999 

i using split("(?<=\\busd\\d{1,99}+)") doesn't work.

you need add non-word boundary \b inside positive look-behind. \b matches between 2 non-word characters or between 2 word characters. won't split on boundary exists between usd9 , comma in usd9, substring because there word boundary exits between usd9 , comma since 9 word character , , non-word character. splits on boundary exists between usd6 , iphone6 because there non-word boundary \b exists between substrings since 6 word character , i word character.

string s = "ipod6 1 usd6iphone6 16g,64g,128g usd9,usd99,usd999macair 2013-2014 usd123macpro 2013-2014,2014-2015 usd899,usd999"; string[] parts = s.split("(?<=\\busd\\d{1,99}+\\b)"); for(string i: parts) {     system.out.println(i); } 

output:

ipod6 1 usd6 iphone6 16g,64g,128g usd9,usd99,usd999 macair 2013-2014 usd123 macpro 2013-2014,2014-2015 usd899,usd999 

Comments

Popular posts from this blog

javascript - AngularJS custom datepicker directive -

javascript - jQuery date picker - Disable dates after the selection from the first date picker -