[英]How to split a string without losing any word?
我正在使用Eclipse for Java,並且希望在不丟失任何字符的情況下拆分輸入行。
例如,輸入行是:
IPOD6 1 USD6IPHONE6 16G,64G,128G USD9,USD99,USD999MACAIR 2013-2014 USD123MACPRO 2013-2014,2014-2015 USD899,USD999
所需的輸出是:
IPOD6 1 USD6
IPHONE6 16G,64G,128G USD9,USD99,USD999
MACAIR 2013-2014 USD123
MACPRO 2013-2014,2014-2015 USD899,USD999
我正在使用split("(?<=\\\\bUSD\\\\d{1,99}+)")
但是它不起作用。
您只需要在正向后方添加一個非單詞邊界\\B
\\B
在兩個非單詞字符之間或兩個單詞字符之間匹配。 它不會在此USD9,
子字符串中的USD9
和逗號之間的邊界USD9,
因為USD9
和逗號之間存在單詞邊界出口,因為9是單詞字符,
而是非單詞字符。 它分裂這之間存在的邊界上USD6
和IPHONE6
因為有一個非單詞邊界\\B
那些子之間存在因為6
是一個字字符和I
也是一個字字符。
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);
}
輸出:
IPOD6 1 USD6
IPHONE6 16G,64G,128G USD9,USD99,USD999
MACAIR 2013-2014 USD123
MACPRO 2013-2014,2014-2015 USD899,USD999
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.