一长串字符串中有字母数字逗号句号感叹号冒号空格退格符回车,我需要捕获的是所有“字母数字”的任意组合(区分大小写),而这些组合又由“逗号句号感叹号冒号空格退格符回车”的任意组合隔开,请问我该怎么写呢?
比如 “fdjfk23jkj0 ,. djfk !s2SJDKd djfk 232 : ! d .. s”字符串经过操作返回这样一个列表[fdjfk23jkj0,djfk,s2SJDKd,djfk,232,d,s]
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
class Test {
public static void main(String[] args) throws PatternSyntaxException {
String subjectString = "fdjfk23jkj0 ,. djfk !s2SJDKd djfk 232 : ! d .. s";
List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("\\p{Alnum}+", Pattern.MULTILINE);
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
matchList.add(regexMatcher.group(0));
}
System.out.println(matchList);
}
}
Pattern pattern = Pattern.compile("[a-z\\d]+",Pattern.CASE_INSENSITIVE);
楼上说的很对哦。
看代码:
public static void main(String[] args) {
String str = "fdjfk23jkj0 ,. djfk !s2SJDKd djfk 232 : ! d .. s";
Pattern pattern = Pattern.compile("([a-z\d]+)", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(str);
ArrayList list = new ArrayList();
while(matcher.find()){
String result = matcher.group(1);
list.add(result);
}
System.out.println(list);
}