- •几个常用的字符比对符号
方 法说 明.符合任一字符/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
}