栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

正则表达式学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

正则表达式学习笔记

正则表达式学习网站:

正则练习网址: https://www.codejiaonang.com/

正则在线测试网站: https://regexr-cn.com/

正则表达式在线测试:https://c.runoob.com/front-end/854【个人比较推荐这个】

开始学习正则表达式: 1.字符组

表达式:/[Jj]ava/g

解释:可以匹配一组可能出现的字符。

示例:

// 示例一:匹配字符串【Java 8编程语言规范】中存在【Java】字符,其中【j】不区分大小写
var pattern = /[Jj]ava/,
	str = 'Java 8编程语言规范';
console.log(pattern.test(str));
// 结果:true
2.区间

表达式:/[0-9]ava/g

解释:区间匹配,比如要匹配0到10的所有数字,需要在字符组中从0写到10,比较繁琐,这时我们可以用==连字符"-"==来表示,连字符支持数字和字母

  1. 匹配任意数字:[0-10]
  2. 匹配任意小写字母:[a-z]
  3. 匹配任意大写字母:[A-Z]

示例:

// 替换以下字符串中的所有数字为空
var str = "我012是一名Java3311开发人员";
console.log(str.replace(/[0-9]/g,""));
//结果:我是一名Java开发人员
3.匹配特殊字符

表达式:/[0-9-]ava/g

解释:正则表达式中 - 代表区间,当如要匹配字符串中的 - 等特殊符号时,可以使用来进行转义(包括所有特殊符号)

示例:

// 替换以下字符串中的所有[-、(、)、[、]]为空
var str = "我-是一名(高级)[开发人员]";
console.log(str.replace(/[-()[]]/g,""));
//结果:我是一名Java开发人员
4.取反

表达式:/[^0-9]ava/g

解释:匹配不包含定义字符组中存在的字符串,例如包含数字,只需要在匹配数字的字符组前面加上^

示例:

// 替换以下字符串中的所有非数字字符为空
var str = "树上7个猴,1个母猴,6个公猴";
console.log(str.replace(/[^0-9]/g,""));
//结果:715
5.快捷匹配

表达式:/[d]ava/g

解释:匹配字符数字0-9或者字母A-Z等简洁操作

快捷方式描述
w与任意单词字符匹配,任意字符指:[A-Z]、[a-z]、[0-9]、_
d与任意数字匹配

示例:

// 替换字符串中所有数字英文字母
var str = "java1.8和Java8的区别";
console.log(str.replace(/[dw]/g,""));
//结果:.和的区别
6.匹配空白

表达式:/s/g

解释:匹配空白字符。空格、tab、换行等。

示例:

// 替换字符串中所有空白字符
var str = "j a v	a1.8和Java8的区别";
console.log(str.replace(/s/g,""));
//结果:ava1.8和Java8的区别
7.单词边界

表达式:/bJavazb/g

解释:匹配整个单词

示例:

// 替换字符串中所有Java字符
var str = "Java是一门超级牛逼的语言,我是一名Java爱好者!";
console.log(str.replace(/bJavab/g,""));
//结果:是一门超级牛逼的语言,我是一名爱好者!
8.快捷方式取反

表达式:/D/g

解释:例如匹配所有非数字:D,其他快捷方式也是,只需要把小写变成大写就是取反。

示例:

// 替换字符串中所有非数字
var str = "Java1.0、Java2.0、Java3.0!";
console.log(str.replace(/D/g,""));
//结果:102030
9.开始和结束

表达式:/^java/g

解释:^指定字符串开始,$指定字符串结束

示例:

// 匹配下列字符串是否以OS结尾
var pattern = /OS/g,
	str = 'AppleOS$';
console.log(pattern.test(str));
//结果:true
10.任意字符

表达式:/java../g

解释:.代表匹配任何单个字符,只能出现在方括号内只有一个字符==n==不能匹配

示例:

// 替换所有以Java开头的6个字符单词为空
var str = "Java1.0、Java2.0、Java3.0!";
console.log(str.replace(/Java../g,""));
//结果:0、0、0!
11.可选字符

表达式:/java?/g

解释:?指定一个字符、字符组或其他基本单元可选,该字符出现零次或者一次

示例:

// 替换所有以Java开头的6个字符单词为空
var str = "Java1.0、Java2.0、Java3.0!";
console.log(str.replace(/Java../g,""));
//结果:0、0、0!
12.重复

表达式:/d{4}?/g

解释:{N}表示在它之前的字符组出现的次数。

示例:

// 替换字字符串中出现的不低于2位的数字为0
var str = "我是一个Java程序员,现在18岁!";
console.log(str.replace(/d{2}?/g,0));
//结果:是一个Java程序员,现在0岁!
13.重复区间

表达式:/d{4,8}/g(贪婪模式)/d{4,8}?/g(非贪婪模式)

解释:{M,N} M表示下界,N表示上届,/d{4,8}/g即表示数字可以出现的次数为4到8次之间。默认贪婪模式,加上?代表非贪婪模式。

  1. 贪婪模式:即优先匹配尽可能多的字符。
  2. 非贪婪模式:匹配少的字符,匹配到结果就好
// 替换字字符串中出现的不低于2位的数字为0
var str = "我是一个Java程序员,现在18岁!";
console.log(str.replace(/d{2}?/g,0));
//结果:是一个Java程序员,现在0岁!
14.开闭区间

表达式:/d{1,}/g速写:/d+/g、d*/g

解释:闭区间不写表示匹配1个或者无数个,+等价于{1,}、{0,}

// 替换Java开头带数字的所有字符
var str = "Java1234567,123456,Java1!";
console.log(str.replace(/Javad+/g,''));
//结果:,123456,!
15.手机号匹配

手机号匹配正则:

^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])d{8}$
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999046.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号