码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2019-11-16 21:41:42      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:匹配   ali   regex   方法   span   val   中文   常用方法   order   

正则表达式对照表(来自百度,仅供参考)

 

正则表达式

匹配的字符串

k

k

abc

abc

[abc]

a, b, c

[abc][123]

a1,b3,c2,a3,b1,c2

[a-z]

a,z,g,r

[a-zA-Z_0-9]

a,A,0,9,_

[\u4e00-\u9fa5]

中文范围

\d

数字 [0-9]

\D

排除数字 [^0-9]

\w

单词字符[a-zA-Z_0-9]

\W

排除单词字符

\s

空白字符

\S

排除空白字符

.

任意字符

[abc]?

? 0或1个

a,b,,c

[abc]?[123]

a1,b2,c3,3,1

[abc]*

* 0到多个

a,aa,,abcaccbcacb

[abc]+

+ 1到多个

a,ab,abc,abcbcbcca

[abc]{3}

3个

aaa,bab,abc,cba,cca

[abc]{3,5}

3到5个

abc,abca,abcab

[abc]{3,}

3到多个,至少3个

abc,abcc,cbccaaaccbca

|

^

字符集内,表示排除;

字符集外,表示起始位置

^a\d+

a5,a5342,a6343,a463452

$

表示结尾位置

\d+a$

5a,6345a,64534522a

字符串的一些正则表达式匹配运算常用方法

  matches(正则)

    当前字符串,是否能与指定的正则表达式相匹配

  split(正则)

    "abc,def,ghi"

    ["abc",  "def",  "ghi"]

  replaceAll(正则,子串)

两段示例代码

  身份证号与电话号

 

  1 import java.util.Scanner;
  2 
  5 public class Test1 {
  7    public static void main(String[] args) {
  9       System.out.println("\n\n-----------------");
 11       f1();
 13       System.out.println("\n\n-----------------");
 15       f2();
 17    }
 20 
 21    private static void f1() {
 23       System.out.println("输入身份证号:");
 25       String s = new Scanner(System.in).nextLine();
 27       /*
 29        * 123456789012345
 31        * 123456789012345678
 33        * 12345678901234567x
 35        * 12345678901234567X
 37        *
 39        * \d{15}|
 41        * \d{15}|\d{17}
 43        * \d{15}|\d{17}[\dxX]
 45        *
 47        * 正则表达式中的“\”,
 49        * 在Java字符串中要写成转义格式
 51        * \\d{15}|\\d{17}[\\dxX]
 53        *
 55        */
 57       //判断输入格式
 59       String regex = "\\d{15}|\\d{17}[\\dxX]";
 61       if(s.matches(regex)) {
 63          System.out.println("格式正确");
 65       } else {
 67          System.out.println("格式错误");
 69       }
 71    }
 72 
 77    private static void f2() {
 79       System.out.println("输入固定电话号码:");
 81       String s = new Scanner(System.in).nextLine();
 83       /*
 85        * 1234567
 87        * 12345678
 89        * 010-1234567
 91        * 0101-12345678
 93        * (010)1234567
 95        * (0101)12345678
 97        *
 99        * \d{7,8}
101        * (区号)?\d{7,8}
103        * (|)?\d{7,8}
105        * (\d{3,4}-|)?\d{7,8}
107        * (\d{3,4}-|())?\d{7,8}
109        * (\d{3,4}-|\(\))?\d{7,8}
111        * (\d{3,4}-|\(\d{3,4}\))?\d{7,8}
113        *
115        * (\\d{3,4}-|\\(\\d{3,4}\\))?\\d{7,8}
117        *
119        */
121       //判断输入格式
123       String regex = "(\\d{3,4}-|\\(\\d{3,4}\\))?\\d{7,8}";
125       if(s.matches(regex)) {
127          System.out.println("格式正确");
129       } else {
131          System.out.println("格式错误");
133       }
135    }
137 }
138
139  

 

正则表达式

标签:匹配   ali   regex   方法   span   val   中文   常用方法   order   

原文地址:https://www.cnblogs.com/houyu/p/11873184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!