学习笔记:正则表达式

来源:互联网 发布:淘宝鹰眼 编辑:程序博客网 时间:2024/04/30 07:59

Regex


原博客放弃不再更新,原博客上部分学习笔记搬运到这个博客上来,这个文章是四月二十三号的学习笔记


  • 正则表达式本质是一个字符串,是用来定义匹配规则,匹配一系列符合某个句法规则的字符串
  • 在开发中,正则表达式常用来检索、替换那些符合某个规则的文本

正则表达式的匹配规则

常用字符

符号 涵义 x 字符x \|转义字符 \\n 换行符 \\r 回车符 \\t 制表符 [abc] abc中的任意一个字符 [^abc] 除abc外的字符 [a-zA-Z] 从 a-zA-Z 的所有字符的任意一个

预定义字符

符号 涵义 [.] 任意字符 \\d 相当于[0-9] \\w 相当于[a-zA-Z_0-9] ^[abc] 以abc任意一个开头的字符串 $ 行尾 \b 代表单词边界 ? 出现一次或者没出现 * 出现零次或多次 + 出现一次或多次 x{n} 正好出现n次 x{n,} 至少出现n次 x{n, m} 出现n到m次

注意:

  • 字母都是区分大小写的
  • 换行符在当前光标所在行的下一行创建空行,并且将光标位置后的字符移到下一行,回车符将光标移到下一个行的行首
  • \**第一个斜线是转义的作用,前边的 ** 将后边的 **转义为普通的斜线

字符串类中设计正则表达式的常用方法

  • boolean matches(String regex);
    • ”abc”.matches(“[a]”);
  • String [] split(String regex);
    • ”abc”.split(“”);
    • 使用规则将字符串切割
  • String replaceAll(String string, String regex)
    • 根据正则表达式的规则替换字符串

方法应用举例

利用split()切割字符串

public class MySplit {    public static void main(String[] args) {        String [] str ;        String ori = "abc-def-ghi-jkl-mno";        String regex = "[-]+";        str = ori.split(regex);        for (String temp : str) {            System.out.println(temp);        }    }}

利用replaceAll()将所有数字替换为“#”

public class MyReplace {    public static void main(String[] args) {        String ori = "123456aaa123bbb456ccc1ddd33333e";        String regex = "\\d+";        ori = ori.replaceAll(regex, "#");        System.out.println(ori);    }}

邮箱地址验证

  • @前数字字母下划线不允许少于1
  • @后数字字母下划线个数不允许少于1
  • . 后边字母个数不确定
/* * 1234567@qq.com * mym_ail@sina.com * nimail@163.com * wodemail@yahoo.com.cn */public class MyMatchMails {    public static void main(String[] args) {        String regex = "\\w+@[0-9a-z]+[\\.[a-z.]]+";         String a = "1234567@qq.com";         String b = "mym_ail@sina.com";         String c = "nimail@163.com";         String d = "wodemail@yahoo.com.cn";         System.out.println(a.matches(regex));         System.out.println(b.matches(regex));         System.out.println(c.matches(regex));         System.out.println(d.matches(regex));    }}
0 0
原创粉丝点击