泰安网站建设广告,做网页学什么语言,百度首页关键词优化,多开商城在力扣上看了一本付费书籍#xff0c;终于让我入门了正则表达事...
问题#xff1a; ^1[3-9]\\d{9}$ 是啥意思 读完本篇小笔记#xff0c;你就知道#xff0c;啥是^1[3-9]\\d{9}$ 这个是啥意思了。
首先#xff0c;正则表达式#xff0c;这个名…在力扣上看了一本付费书籍终于让我入门了正则表达事...
问题 ^1[3-9]\\d{9}$ 是啥意思 读完本篇小笔记你就知道啥是^1[3-9]\\d{9}$ 这个是啥意思了。
首先正则表达式这个名字很拗口。其实它是“正规、规则”的意思。常用来匹配字符串看字符串是否符号某种规则。
这样一说你是不是就明白了
其次^和$是表示正则表达式的开头和结尾。这个理解起来也不难的对吧
接着我们先看\\d。
其实我之前看到过好几次一直不知道\\d啥意思。今天终于懂了。 实际上
d 是digital \d 表示匹配一个数字w是word \w表示匹配一位字符下划线英文字母s 是space \s表示匹配一个空格
但是为啥那里写的是\\d 呢
因为“\” 是特殊字符需要转义所以多加了一个\。写出来就是\\d表示匹配数字,懂了不
d、w、s这三个字母可以记作「大巫师」原作者称。 DWS表示相反的匹配比\\D表示不能匹配非数字的字符串。
那么{9}又是什么意思呢
我们先来看最简单的正则比如.表示匹配1位..表示匹配2位...表示匹配3位.以此类推 System.out.println(a.matches(.));
System.out.println(a.matches(..));//第一次输出结果是true 第二个是false。你可以试试 但是如果匹配10000位要写10000个.吗
不用的。人类是会偷懒滴
可以用{}几位到几位。
{1}表示匹配1位
{1,}表示匹配1到无数个
{1,2}表示匹配1-2次。所以\\d{9} 表示匹配9位数字。 小练习
13 ~ 19 开头的字符串才可能是手机号码。请写一个正则。 答案1[3456789]\\d{9} 或者 1[3-9]\\d{9}
[]表示这个位置的数字或字符只能从[]这里面选。
[3456789]因为是连续的所以可以写成[3-9]。同理[a-z]和[A-Z]表示匹配所有小写字母和大写字母。
* ? * 表示 {0,}意思是匹配 0 到无数次 表示 {1,}意思是匹配 1 到无数次
? 表示 {0,1}也就是匹配 0 ~ 1 次。
这里面有个概念 0次匹配,什么意思呢 其实就是a* 可以匹配空字符串一个字符、两个字符以此类推。但是它不能匹配其他字符例如b字符。
概念如果不理解就一直问打破砂锅问到底问到自己会。不然这个问题就一直堵着。很多东西都不懂了。 就是这样