String s = "p1&p2";
if(s.matches(".*[0-9].*")) { //如果字符串中有数字
s = s.replaceAll("^[A-Za-z0-9]$", ""); //把数字+字母的组合提取出来
for (int i = 0; i < s.length(); i++) {
set.add(String.valueOf(s.charAt(i)));//去重
System.out.println(set);
}
}
我的正则表达式是想识别数字和字母的组合,
期望输出:
[p1,p2]
但是输出结果是所有单个字符:
Set set = new HashSet();
String s = "p1&p2";
Matcher matcher = Pattern.compile("[A-Za-z0-9]+").matcher(s);
while (matcher.find()) {
set.add(matcher.group());
}
System.out.println(set);
要找字母数字的话直接循环查找就行了,没必要替换