正则表达式的相关概念及使用方法

你对一件事如果不同意,可以转过头去不理,也可以诚恳的提出批评,但不要冷拆热讽,因为冷嘲热讽会损害自己的灵魂,慢慢使你变为一个满目阴私的人

1. 元字符

1.1 元字符及功能介绍

元字符功能
\d匹配一个数字
\D匹配一个非数字字符
\w匹配一个单字字符(字母、数字、下划线)
\W匹配一个非单字字符
\s匹配一个空白字符,包括空格,制表符和换行符
.匹配一个任意字符
^匹配开头
$匹配结尾

1.2 元字符注意事项

  • 如果使用new RegExp()创建,反斜杠需要多写一个
  • 比如
 /^1\d{10}$/  和 new RegExp('^1\\d{10}$')

2. 字符的转义

  • 在特殊字符之前加上反斜杠\表示下一个字符不是特殊字符,应当按照字面意思理解使用
/^[a-zA-Z]{2,}\.[a-zA-Z]{2,}$/
  • 不管一个符号是否有特殊意义,都可以在之前加上反斜杠 \ 来确保它不具有特殊意义,只表示符号本身。

3. 方括号表示法

  • 使用方括号,比如[abc],可以创建一个字符集,表示匹配方括号里面的任意字符
  • 比如某学校的学号规定,一共7为,第一位是b则为本科,y为研究生,后面为6为数字,则可表示为 /^[by]\d{6}$/
  • 可以使用 - 来指定一个字符范围,^ 表示否定
元字符等价方括号表示
\d[0-9]
\D[^0-9]
\w[a-zA-Z0-9_]
\W[]^a-zA-Z0-9_

4. 量词

量词意义
*匹配前一个表达式0次或者多次,等价于{0,}
+匹配前一个表达式一个或者多次等价于{1,}
?匹配前一个表达式0次或者1次,等价于{0,1}
{n}n是一个正整数,匹配前一个字符正好出现了n次
{n,}n是一个正整数,匹配前一个字符至少出现了n次
{n,m}匹配前一个字符至少出现了n次,至多出现m次

5. 修饰符

  • 修饰符也叫标志(flags),用于使用正则表达式实现高级搜索。
修饰符意义
i不区分大小写搜索
g全局搜索,即搜索时会记录上次搜索到达的位置
  • 修饰符的使用
var re = /m/gi
var re = new RegExp('m','gi')

6. 正则表达式可以‘打点’使用哪些方法呢?

方法意义
test()测试某字符串是否匹配正则表达式,结果返回布尔类型
exec()根据正则表达式,在字符串中进行查找,根据查询号结果返回数组或者null
  • test()方法的功能是:检测某个字符串是否与正则表达式匹配,若匹配返回true,不匹配返回false
        var reg = /^[1-9][0-9]{4,10}$/ //匹配QQ号
        console.log(reg.test(29978467027))
        console.log(reg.test(123))

在这里插入图片描述

  • exec()方法功能是:在一个指定字符串中执行一个正则匹配查找,返回结果是一个数组或者null。如:
        var str = 'abc123def456ght789'
        console.log(/\d+/.exec(str))

在这里插入图片描述

  • exec()的逐条遍历:exec()最有趣的是,有‘g’修饰的正则表达式会变为一个有状态的,这意味着就可以对单字符串中的结果进行多次逐条遍历,如:
  var str = 'abc123def456ght789'
        var reg = /\d+/g
        let res = null
        while(res = reg.exec(str)){
            console.log(res)
        }

在这里插入图片描述

7. 字符串的相关方法

方法简介
search()在字符串中根据正则表达式进行匹配查询,返回首次匹配索引到的位置,索引不到则返回-1。该方法与indexOf()类似,但indexOf()不支持正则
match()在字符串中根据正则表达式进行匹配查询,返回一个数组,索引不到返回null
replace()替换字符串中匹配的值,可以使用正则表达式,返回替换后的字符串
split()分割字符串为数组,可以使用正则表达式,返回分割后的数组

如:

   		var str = 'abc123def456ght789'
        var str1 = 'acs'
        var reg = /\d+/g
        console.log(str.search(reg));
        console.log(str1.search(reg));
        console.log(str.match(reg));
        console.log(str1.match(reg));
        console.log(str.replace(reg,'*'));
        console.log(str.split(reg));

在这里插入图片描述

8. 实际应用

  • 用正则表达式进行表达验证
  • 实际上,很多正则不需要我们自己写,可以通过搜素引擎查找,即拿即用。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
JavaScript正则表达式和Java正则表达式在语法上有一些差异,但是它们的基本概念和用法是相似的。下面是将JavaScript正则表达式转换为Java正则表达式的一些常见规则: 1. 语法差异: - JavaScript正则表达式使用斜杠(/)作为定界符,而Java正则表达式使用双引号(")作为定界符。 - JavaScript正则表达式中的特殊字符需要进行转义,而Java正则表达式中的特殊字符不需要转义。 2. 字符类: - JavaScript正则表达式中的字符类使用方括号([])表示,而Java正则表达式使用方括号([])或者Unicode转义(\p{...})表示。 - JavaScript正则表达式中的字符类可以使用连字符(-)表示范围,而Java正则表达式中需要使用Unicode转义(\uXXXX)表示范围。 3. 量词: - JavaScript正则表达式中的量词使用花括号({})表示,而Java正则表达式使用花括号({})或者问号(?)表示。 - JavaScript正则表达式中的贪婪量词默认是贪婪模式,而Java正则表达式中的贪婪量词需要在后面添加问号(?)来表示非贪婪模式。 4. 边界匹配: - JavaScript正则表达式中的边界匹配使用插入符号(^)和美元符号($)表示,而Java正则表达式使用\A和\Z表示。 5. 其他差异: - JavaScript正则表达式中的捕获组使用圆括号(())表示,而Java正则表达式使用圆括号(())或者方括号([])表示。 - JavaScript正则表达式中的反向引用使用反斜杠加数字(\1、\2等)表示,而Java正则表达式使用美元符号加数字($1、$2等)表示。 以上是一些常见的JavaScript正则表达式转换为Java正则表达式的规则。具体转换时,还需要根据具体的正则表达式进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘子☆心酸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值