- •几个常用的字符比对符号
方 法说 明.符合任一字符/d符合0到9任一个数字字符/D符合0-9以外的字符/s符合'/t'、'/n'、'/x0B'、'/f'、'/r'等空格符/w符合a到z、A到Z、0到9等字符,也就是数字或是字母都符合/W符合a到z、A到Z、0到9等之外的字符,也就是除数字与字母外都符合
-
•Character class
范 例作 用[abc]符合a、b或c[^abc]符合「a或b或c」之外的字符[a-zA-Z]符合a到z或者是A到Z的字符[a-d[m-p]]a到d或者是m到p,也可以写成[a-dm-p][a-z&&[def]]a到z并且是d或e或f,结果就是d或e或f可以符合[a-z&&[^bc]]a到z并且不是b或c[a-z&&[^m-p]]a到z并且不是m到p -
Greedy quantifiers
范 例作 用X?X可出现一次或完全没有X*X可出现零次或多次X+X可出现一次或多次X{n}X可出现n次X{n,}X可出现至少n次X{n, m}X可出现至少n次,但不超过m次X?X可出现一次或完全没有
控制字符作用//反斜杠/'单引号'/"双引号"/uxxxx以16进位数指定Unicode字符输出/xxx以8进位数指定Unicode字符输出/b倒退一个字符/f换页/n换行/r游标移至行首/t跳格(一个Tab键)
格式字符作 用%%在字符串中显示%%d以10进位整数方式输出,提供的数必须是Byte、Short、 Integer、Long、或BigInteger%f将浮点数以10进位方式输出,提供的数必须是Float、Double或BigDecimal%e, %E将浮点数以10进位方式输出,并使用科学记号,提供的数必须是Float、Double或BigDecimal%a, %A使用科学记号输出浮点数,以16进位输出整数部份,以10进位输出指数部份,提供的数必须是Float、Double、BigDecimal%o以8进位整数方式输出,提供的数必须是Byte、Short、 Integer、Long、或BigInteger%x, %X将浮点数以16进位方式输出,提供的数必须是Byte、Short、 Integer、Long、或BigInteger%s, %S将字符串格式化输出%c, %C以字符方式输出,提供的数必须是Byte、Short、Character或 Integer%b, %B将"true"或"false"输出(或"TRUE"、"FALSE",使用 %B)。另外,非null值输出是"true",null值输出是"false"%t, %T输出日期/时间的前置
–System.out.printf("example:%.2f%n",
19.234);
–example:19.23
–System.out.printf("example:%6.2f%n",
19.234);
–example:
19.23
l /xn匹配ASCII码值等于n的字符,此处的 n 必须是两位的十六进制数。例如,“/x41”匹配字符“A”,显然用这种方式可以表示所有非打印字符。注意:“/x041”的意义是“/x04”所表示的字符后跟字符“1”。
l /un匹配Unicode编码等于n的字符,此处的n必须是一个四位的十六进制数。例如,/u00A9匹配版权符号(©),[/u4e00-/u9fa5]则匹配任意一个汉字字符。
ds
String s = "sfdafdas fjdlas kj, fsk Full = 121 kfdsfdsa fsd=123";
String str = "Full =";
if (s.contains(str)){
int begin = s.indexOf("Full");
print(begin);
String ss = s.substring(begin,begin+str.length()+4);
print(ss);
print(ss.matches(".{1,5}=.\\d{1,3}"));
}
String s = "sfdafdas fjdlas kj, fsk Full = 12113da a 1kfdsfdsa fsd=123";
String str = "Full =";
if (s.contains(str)){
int begin = s.indexOf("Full");
print(begin);
//String ss = s.substring(begin,begin+str.length()+4);
//print(ss);
//print(ss.trim().matches(".{1,5}=.\\d+"));
Pattern p = Pattern.compile("Full\\s=\\s\\d+");
Matcher m = p.matcher(s.trim());
if (m.find()){ //if find, then print
String v = m.group();
int i = Integer.valueOf(v.substring(v.indexOf("=")+2));
print(i);
}
//25
//12113
}