返回信息流最近在学习JAVA,请问如果要匹配
?[
这个字符,为什么java的正则表达式要写成
\\?\\[
在我看来,\表示转义字符,所以要表示?只需要用\?即可,所以为什么不是\?\u呢?
谢谢!
这是一条镜像帖。来源:北邮人论坛 / java / #51821同步于 2016/7/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
请教一个正则表达式问题
johnson123
2016/7/20镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
\? Java会认为你在输入转义字符,类似 \n \r \t.
然而Java里没有 \?的转义,所以会出错。
至于“\?”这种转义,是正则里的
那么 为了避免 "\"被认为是转义的前缀,需要用转义转义 即 '\\?'
不好意思,还是不太懂,那么\\\\为什么指代的是“\”?
【 在 icyfox 的大作中提到: 】
: \? Java会认为你在输入转义字符,类似 \n \r \t.
: 然而Java里没有 \?的转义,所以会出错。
: 至于“\?”这种转义,是正则里的
: ...................
因为正则里也有转义
想匹配'\'就得用'\\\\'
【 在 johnson123 的大作中提到: 】
: 不好意思,还是不太懂,那么\\\\为什么指代的是“\”?
你看我这么理解对不对??
\并不光代表正则表达式里的转义,还代表一般字符串中的转义。对于一个一般字符串来说,\\?\\[会被翻译成\?\[,这就是对应的正则表达式,在正则表达式中,\?\[对应匹配?[
【 在 icyfox 的大作中提到: 】
: 因为正则里也有转义
: 想匹配'\'就得用'\\\\'