正则表达式

2017-09-08  本文已影响0人  沫晴er

正则表达式:又称郭泽表达式 .为了验证输入内容是否符合标准而定义的一套规则.

如果一个字符串作为正则表达式,只能匹配自身.搜索,查询,匹配,调换都用于正则表达式

^以什么开头         $以什么结尾

[]是一个字符  等价于 [0-9]

{9}一共有9位 例:[0-9]{9} 有9位数字 0-9

^不包含字符  例:[^012]不包含0或者1或者2

[1,4]一位到4位

{9,}最少9位

+{1,}最少1位    ?(0,1)0位或者1位  *(0)最少0位

.通配所有

\d 代表[0-9]  \w[0-9a-zA-Z_]       \ 转义字符

正则表达式匹配手机号

^1[3,4,5,7,8,9]\d{9}

匹配100..||10..||0..

^[1-9][0-9]{0,}|^0{1}\.[0-9]+

匹配案例:

boolean istag = "dabainzhenhaoo123467".matches("^[a-zA-Z]\\w{5,19}$");

System.out.println(istag);

搜索:

String luhan = "鹿晗(LU HAN),1990年4月20日出生于北京海淀区,中国内地影视男演员、歌手。2008年赴韩国留学期间在明洞逛街时,被韩国SM娱乐有限公司星探发掘成为旗下练习生。2012年4月以韩国男子组合EXO/EXO-M成员正式出道,组合内担任主唱、领舞、门面担当。2015年1月,主演的首部电影《重返20岁》上映,凭借此片获第22届北京大学生电影节最受欢迎男演员奖[5]  。5月,登《福布斯》杂志中文版封面[6]  。8月,加盟综艺节目《奔跑吧兄弟第三季》[7]  。10月,主演的悬疑电影《我是证人》上映[8]  。12月,个人首张专辑《Reloaded(重启)》全球发行[9-10]  。";

Pattern p = Pattern.compile("《.{2,10}》");

  Matcher m = p.matcher(luhan);

 while (m.find()) {

   String str = m.group();

   System.out.println(str);

   String str1 = str.substring(1,str.length()-1);

   System.out.println(str1);

 }

案例2:

匹配:windows98 windows2000  windows2007

 Pattern p1 = Pattern.compile("(?<=windows)(\\d{2}\\d{4})");

  Matcher m1 = p1.matcher("windows2000

 while (m1.find()) {

  String str = m1.group();

   System.out.println(str);

   String str1 = str.substring(1,str.length()-1);

   System.out.println(str);

}

替换

String des = "我的电话15358479570 你的电话13648067469";

String newDes = des.replaceAll("1[34578]\\d{9}", "电话");

System.out.println(newDes);

分割

String[] dess = des.split("1[34578]\\d{9}");

System.out.println(Arrays.toString(dess));

1、以 $ 开始

2、整数部分,从个位起,满 3 个数字用 , 分隔

3、如果为小数,则小数部分长度为 2

4、正确的格式如:$1,023,032.03 或者 $2.03,错误的格式如:$3,432,12.12 或者 $34,344.3

public class HomeWork2 {

public static void main(String[] args) {

String regix1 = "\\$(0{1}|([1-9]\\d{0,2}(,\\d{3})*))(\\.\\d{2})?";

boolean isTag = "$1,023,032".matches(regix1);

System.out.println(isTag);

}

}

String str = '我草你妈哈哈背景天胡景涛哪肉涯剪短发欲望';

通过正则过滤敏感词,结果为

我*你妈哈哈背景天***哪*涯剪短发*望

import java.util.regex.Matcher;

import java.util.regex.Pattern;

//敏感词过滤

public class HomeWork1 {

public static void main(String[] args) {

String str = "我草你妈哈哈背景天胡景涛哪肉涯剪短发欲望";

// 1. 匹配

String regex = "(草|胡景涛|肉|欲)";

// 创建一个正则模板

Pattern p = Pattern.compile(regex);

//编译正则

Matcher m = p.matcher(str);

while (m.find()) {

String temp = m.group();

str = str.replace(temp, getStar(temp.length()));

}

System.out.println(str);

}

static String getStar(int length) {

String temp = "";

for(int i = 0; i < length;i++) {

temp+="*";

}

return temp;

}

}

上一篇下一篇

猜你喜欢

热点阅读