簡體   English   中英

如何在不丟失單詞的情況下分割字符串?

[英]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}+)")但是它不起作用。

不要太復雜,使用這種模式

(?=IPOD|IPHONE|MAC)

並換成新行
現在很容易捕獲或拆分為數組
演示


或者這種模式

((USD\d+,?)+)

並替換為w / $1\\n
演示

您只需要在正向后方添加一個非單詞邊界\\B \\B在兩個非單詞字符之間或兩個單詞字符之間匹配。 它不會在此USD9,子字符串中的USD9和逗號之間的邊界USD9,因為USD9和逗號之間存在單詞邊界出口,因為9是單詞字符,而是非單詞字符。 它分裂這之間存在的邊界上USD6IPHONE6因為有一個非單詞邊界\\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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM