我正在使用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}+)")
,但它无法正常使用。
答案 0 :(得分:1)
答案 1 :(得分:1)
您只需要在正面后方中添加一个非单词边界\B
。 \B
匹配两个非单词字符或两个单词字符之间。它不会在此USD9
子字符串中USD9,
和逗号之间存在的边界上分割,因为USD9
和逗号之间存在单词边界,因为9是单词字符{{{ 1}}是一个非单词字符。它在,
和USD6
之间存在的边界上分裂,因为这些子串之间存在非字边界IPHONE6
,因为\B
是一个单词字符{{1}也是一个单词字符。
6
<强>输出:强>
I