您的位置:首页 > 编程语言 > Java开发

正则表达式定义及用法

2017-01-06 20:18 344 查看
正则表达式

是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用

正则表达式的组成规则

规则字符在java.util.regex Pattern类中
A:字符
x
字符 x。举例:'a'表示字符a

\\
反斜线字符。

\n
新行(换行)符 ('\u000A')

\r
回车符 ('\u000D')


B:字符类
[abc] a、b
或 c(简单类)

[^abc]
任何字符,除了 a、b
或 c(否定)

[a-zA-Z] a到
z 或
A到 Z,两头的字母包括在内(范围)

[0-9] 0到9的字符都包括

C:预定义字符类
.
任何字符。我的就是.字符本身,怎么表示呢? \.

\d
数字:[0-9]

\w
单词字符:[a-zA-Z_0-9]

在正则表达式里面组成单词的东西必须有这些东西组成
 
D:边界匹配器
^
行的开头

$
行的结尾

\b
单词边界

就是不是单词字符的地方。
举例:hello
world?haha;xixi


E:Greedy
数量词

X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好
n 次

X{n,} X,至少
n 次

X{n,m} X,至少
n 次,但是不超过
m 次

 
 

案例联系
手机号码

package cn.it18zhang_02;
 
import java.util.Scanner;
 
/*
 *
判断功能
 *
String类的public boolean matches(String
regex)
 *
 *
需求:
 *
判断手机号码是否满足要求?
 *

 *
分析:
 *
A:键盘录入手机号码
 *
B:定义手机号码的规则
 *
13436975980
 *
13688886868
 *
13866668888
 *
13456789012
 *
13123456789
 *
18912345678
 *
18886867878
 *
18638833883
 *
C:调用功能,判断即可
 *
D:输出结果
 */
public class RegexDemo
{
public static void main(String[]
args) {
//键盘录入手机号码
Scanner sc =
new Scanner(System.in);
System.out.println("请输入你的手机号码:");
String phone =
sc.nextLine();

//定义手机号码的规则
String regex =
"1[38]\\d{9}";

//调用功能,判断即可
boolean flag
= phone.matches(regex);

//输出结果
System.out.println("flag:"+flag);
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息