关于为什么正则表达式中表示匹配单词字符的“\\w”要有两个‘\‘

在正则表达式中,'\w'表示匹配单个单词字符(英文、数字、下划线)。

在匹配方法matches()中,定位到正则表达式有'\' 和'w'两个字符连着时,就去判断字符串当前位置元素是否==单词元素。

编译时能够识别的转义字符中没有'\w',它没办法在编译结束生成执行代码时转为对应的ASCII码值,会编译报错。它不是可以转成ASCII码的转义字符,而是会被当成两个字符'\'和'w',而'\'又没有对应的ASCII码值,转义字符'\\'(代表'\')才有对应的ASCII码值,所以会报错。

java规定好的转义字符就这几种:

要表示这些意义,就必须使用对应的转义字符。

所以正则表达式中'\w'是需要把'\'和'w'当成两个字符都编译成对应的ASCII码:'w'不用转义,对应的ASCII码是119,而'\'没有对应的ASCII码,需要用转义字符'\\'来代表它,对应的ASCII码值是92。因此就应该写成"\\w"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值