public class 正则表达式匹配{
public static void main(String[] args) {
String str = "asdf3g(qp!ero\\igja.aasdf。。as。asf儿童和,";
String[] spt= str.split("(^as(s)?)");
System.out.println(spt);
for(int i =0;i<spt.length;i++){
System.out.println(spt[i]);
}
// |代表分隔符
// \\代表转义
// \\d 代表数字
//不能用直接? 要转义
// 可以用单个英文字符
//^ 匹配第一个
// [a-z] 分割英文
// [^a-z] 相反,所有非英文
// as(df)? as 或者 asdf
// as(df) asdf
// ^as(df)? 以asdf 开头
// a{2} 花括号代表个数, 两个a a{1} 一个a
// as* *号代表以a或者as 或者 s
// ([a-z]{2})\1 匹配重复 如 bobo 可匹配,boto不可 反向引用括号匹配到的结果,\1代表第一个括号,如果多个括号可选\2\3
String s = "abc|123|def|23.2|we|-1|test";
String[] s1 = s.split("[|]");
//String regex ="^[\\d]*$";//\\d不行,因这里面是字符串,没有数字
//String regex ="^(-?\\d+)(\\.\\d+)?$";这个是的所有浮点数
String regex ="^(\\d+)(\\.\\d+)?$";
float a=0;
for(int i=0;i <s1.length;i++){
//System.out.println(s1[i]);
if(s1[i].matches(regex)){
float f = Float.parseFloat(s1[i]);
a+=f;
}
}
System.out.println(a);
}
}
for regexbuddy