^和$的含义

^ 表示匹配输入字符串的开始位置。

例如,正则表达式 ^hello 只会匹配以 hello 开头的字符串,像 hello buka 能匹配,而 buka hello 则不能匹配。

^ :以哪个元字符作为开始;

/^a/    匹配以a字符作为开头的字符串

 /^abc/  以abc字符串为开头 

/^\d/   以数字作为开头

$ 表示匹配输入字符串的结束位置。
$ :以哪个元字符作为结束。

比如,正则表达式 world$ 只会匹配以 world 结尾的字符串,hello buka 能匹配,而buka hello` 就不能匹配。

/abc$/ 以abc作为结束

/\d$/ 以数字作为结束

^ 和 $ 同时出现时,表示只能匹配 ^ 和 $ 之间的内
/^abc$/  //只能匹配'abc'
/^a.c$/  //可以匹配a加任意单个字符加c,比如abc,aec,acc,a2c等
^(hello).*$ //这个表达式会匹配以 hello 开头的整个字符串,并将 hello 部分捕获到一个分组中
^.*$ //在单行模式下,它匹配整个输入字符串,因为 .* 表示匹配任意字符零次或多次,而 ^ 和 $ 分别限定了起始和结束位置。

注意:abcabc这种形式不行。

位置锚定:确定匹配字符出现的位置
字符含义
^行首锚定,用于模式的最左侧
$行尾锚定,用于模式的最左右侧
\ <pattern以对应匹配为词首的单词
pattern\ >以对应匹配为词尾的单词
\ b表示单词的边界,既可以表示单词的词首,也可以表示单词的词尾
例子:
Scanner sc = new Scanner(System.in);
String dhhm = "^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$";
System.out.println("请输入电话号码:  ");
String b = sc.next();
System.out.println(b.matches(dhhm));

/ ^ :表示匹配字符串的开始位置。
(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9]) :这是一个分组,表示手机号码的前三位可以是以下几种情况之一:
13[0-9] :表示以 13 开头,第三位可以是 0 到 9 中的任意数字。
14[5|7] :表示以 145 或 147 开头。
15[0|1|2|3|5|6|7|8|9] :表示以 15 开头,第三位可以是 0、1、2、3、5、6、7、8、9 中的任意数字。
18[0|1|2|3|5|6|7|8|9] :表示以 18 开头,第三位可以是 0、1、2、3、5、6、7、8、9 中的任意数字。
\\d{8} :\\d 表示匹配一个数字,{8} 表示前面的数字重复 8 次,即表示后面跟 8 位数字。
$ :表示匹配字符串的结束位置。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值