您的位置:首页 > 其它

正则表达式

2016-12-04 18:21 288 查看
一,正则表达式概述









简单示例:

package com.jackie.day12;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegularExpressionTest {

public static void main(String[] args) {
firstDemo();
// secondDemo();
//thirdDemo();
//System.out.println(testPhoneNumber("13927470685"));
}

// 查找字符串中"java"出现的次数
private static void firstDemo() {
String str = "JAVAhellojava javahello ,Javahahajava";
// 把正则模式字符串编译成正则模式对象,忽略大小写
Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
// 用这个模式串作用于目标字符串上,返回一个匹配器对象
Matcher matcher = p.matcher(str);
// 使用匹配器来完成业务
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println(count);
}

// 查找字符串中"中文字符"出现的次数
private static void secondDemo() {
String str = "12hello你,我87java,android,58酒";
Pattern p = Pattern.compile("[\u4E00-\u9fa5]");
Matcher matcher = p.matcher(str);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println(count);
}

// 把字符串中"中文字符"替换成"*"
private static void thirdDemo() {
String str = "12hello你,我87java,android,58酒";
Pattern p = Pattern.compile("[\u4E00-\u9fa5]");
Matcher matcher = p.matcher(str);
String result = matcher.replaceAll("*");
System.out.println(result);
}

//判断传过来的数字是不是手机号码
private static boolean testPhoneNumber (String phoneNumber){
Pattern p = Pattern.compile("1[3578][0-9]{9}");
Matcher matcher = p.matcher(phoneNumber);
return matcher.matches();
}
}


二,正则表达式语法



1,限定符



2,选择匹配符



3,特殊字符



4,字符匹配符

字符集合:就是用[ ]括起来的多个字符。如果里面有元字符,也要当成普通字符。



5,定位符



6,分组组合符



7,其他

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