正则表达式

2017-11-24  本文已影响0人  Mason_Xu

正则表达式

用于声明字符串的规则表达式。

经常用于检测一个字符串是否符合特定规则。

语法:

  1. 字符集合:
    • [abcd] abcd四个字符选一个
    • [a-f] a到f字符选一个
    • [^abcd] 除了abcd字符的其他字符
    • 缩写版
      • . 任意字符
      • \d 数字
      • \D 非数字
      • \w 单词字符
      • \W 非单词字符
      • \s 空白
      • \S 非空白
  2. 数量词
    • X{n} n个X
    • X{n,m} n到m个
    • X{n, } 最少n个
    • ? {0,1}
      • {0,}
      • {1,}
  3. 分组
    • (序列1|序列2)
image

常见案例:

邮政编码的规则 \d{6}
身份证的规则 d{17}[\dXx]
用户名的规则: 8到11个单词字符 \w{8,11}
检查一个文件是否为jpeg照片文件: .+\.jpe?g
检查一个文件是否为照片文件: .+\.(jpe?g|png|gif)
Excel能够支持的文件名规则 : .+\.xls[xbm]?
手机号的规则: (0086|\+86)?\s*1\d{10}

String 正则API

matches

用于检测一个字符串整体是否符合指定的正则规则。

案例:

//  String reg=".+\\.jpe?g";
String reg=".+\\.(jpe?g|png|gif)";
//正则表达式: .+\.(jpe?g|png|gif)
//  Java 字符串: .+\\.(jpe?g|png|gif)
String file = "她.png";
System.out.println(reg);
boolean b = file.matches(reg);
System.out.println(b);  

split

按照一定规则将字符串劈开

String str=
    "1, 李洪鹤, 110, lihh@tedu.cn, 北京海淀区";
String[] data=str.split(",\\s*");
//  "1", "李洪鹤" ...
System.out.println(data[1]);

replaceAll

replace 替换

String str = "那一年,我去你家,你说我去!"
String reg = "我去";
String s = str.replaceAll(reg, "XXX");
System.out.println(s);
上一篇 下一篇

猜你喜欢

热点阅读