java 正则匹配 sql星号,正则表达式之 * 星号

正则表达式 *

官方文档解释 匹配前一个表达式 0 次或多次。等价于 {0,}。

var reg = /bo*/

var reg1 = /bo{0,}/ 类同上

var str1 = "A ghost boooooed"

var str2 = "A bird warbled"

var str3 = "A goat grunted"

str1.match(reg) // boooooo

str2.match(reg) //b

str3.match(reg) //null

从上面结论得出 o可以多次匹配 b后面没有o就不可以匹配,如果o前面不是b也匹配不上

问题来了,b可以匹配多次吗//毕竟是0次或多次

var str4 = "A goat grunted bbbbb"

str4.match(reg) //b

结果出来了,竟然是只有一次b,这和我想的有点出入,那bo是一个整体吗,也并不是第一个就可以看出o匹配了多次

var reg2 = /bbo*/;

var str1 = "A ghost boooooed" // null 第二位没有匹配上 boooooed

var str2 = "A bird warbled" //null 第二位没有匹配上

var str3 = "A goat grunted"

var str4 = "A goat grunted bbbbb" // bb 两位匹配上 但是没有o

var str5 = "A goat grunted bboooooo" // bboooo 前两位匹配上且o多次匹配

console.log(str1.match(reg2)) //null

console.log(str2.match(reg2)) //null

console.log(str3.match(reg2)) //null

console.log(str4.match(reg2)) //bb

console.log(str5.match(reg2)) //bboooooo

var reg2 = /b*/;

var str1 = "A ghost sboooooed" //null

var str2 = "A bird warbled"//null

var str3 = "A goat bbbbsdfsd"//null 空格没有匹配

var str4 = "bbbbbsdsd"// bbbbbb 只能以b开头的0-n 次

var str5 = "A goat grunted sdbboooooo"//null

总结:对比两个reg匹配字段有的0或者多次,假如前面只有一个数字或者字母等那就是0-多次,如果前面匹配时候长串的比如 bbo这种,除了最后一位可以匹配多次之外,前面的都且只能匹配1次,假如第一个是0次,那直接返回null,只要前面几位其中一个是0次,那返回的就是null,如果前几位都匹配上并且只有一次,那最后一个就有多次可以匹配

刷新了我对*号的认识

课外练习题

var reg = /[0-9]*/

var reg1 = /\d*/

var str1 = "asdf0333"

var str2 = "1231sfsdf"

var str3 = "sd12222er"

console.log(str1.match(reg1))

console.log(str2.match(reg1))

console.log(str3.match(reg1))

追加理解认识,正则如果匹配多个列如

let reg = /bbs*/

最后一位 就是前一个表达式

所以最后一位前面的所有表达式必须匹配了之后,才能让*号前的表达式匹配多次 当然表达式不一定是一个数字字母,还可能是\d这种

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值