开发者

Pattern and Matcher java problem

开发者 https://www.devze.com 2023-02-05 17:42 出处:网络
\"SOMETHING, SOMETHING1, SOMETHING2,...\" How can I split that string to SOMETHING SOMETHING1 SOMETHING2

"SOMETHING, SOMETHING1, SOMETHING2,..."

How can I split that string to

SOMETHING SOMETHING1 SOMETHING2

This is what I have at the moment:

Pattern p = Pattern.compile("\\,+");
Matcher 开发者_开发问答m = p.matcher(nVI);
while(m.find()){
System.out.println(m.group(1));

However, it is not producing the desired result.


What exactly separates the parts? Just a comma and a single space?

Try this:

String[] parts = nVI.split(", ");

There is no need to escape the comma by writing \\, in your regular expression.


String s = "SOMETHING, SOMETHING1, SOMETHING2";
String[] stringList = s.split(", ");

for(String str : stringList){
    System.out.println(str);
}


Here's a more generic solution (splitting by non-word characters):

String[] stringList = s.split("\\W+");

From the Pattern javadocs:

\w  A word character: [a-zA-Z_0-9]
\W  A non-word character: [^\w]

Or if you use Guava, you can do the equivalent (actually not quite equivalent, as it also matches non-ascii letters):

for(String word:
Splitter.on(CharMatcher.JAVA_LETTER_OR_DIGIT.negate()).split(str)){
    // do something
}
0

精彩评论

暂无评论...
验证码 换一张
取 消