java 正则表达式 \\ 真的不明白

书上说:在java中,\\的意思是"我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的含义."例如,如果你想表示一位数字,那么正则表达式应该是\\d.
表示一个数字的这个我明白,可是后面书上又说"如果你想插入一个普通的反斜线,应该是\\\\"
为什么要写四个\\\\呢?前两个\\是表示一个正则表达式的反斜线,表示第三个\有特殊的含义,那第三个\到底是什么意思呢?第四个呢?
这个问题已经困扰我很长时间了,跪求高手指点.

Java 字符串中\是转义字符,例如"\n"是换行,
因此要在字符串中插入一个\字符,就需要打"\\"

正则表达式中表示数字是字符串 \d,实际在内存中就是两个字符\和d, 但在java中\就得写成\\,因此在写程序时就是"\\d"。

如果在正则中输出一个\而不是表示转义字符,正则表达式必须存\\,
实际在内存中就是两个字符\和\,但是java中要分别表示这两个\,
每个都必须写成"\\",因此要写成"\\\\"。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-07-26
<script type="text/javascript">
<!--
alert(/\\/.test("\\"))
//-->
</script>
这是javascript的代码,不过在java上使用正则的道理还是一样的。
\\\\的意思我想是因为 在java字符串中 表示 '\'需要这样写
String s = "c:\\windows..."; 可能其作者想匹配两个'\',
可是, ‘\’本身就是有意义的。转义字符,char a = '\\';这样才表示为一个 \
刚才的s字符串 里面其实只有一个 \ .所以\\\\应该匹配的是 \\\\\

java 正则表达式 \\\\ 真的不明白
正则表达式中表示数字是字符串 \\d,实际在内存中就是两个字符\\和d, 但在java中\\就得写成\\\\,因此在写程序时就是"\\\\d"。如果在正则中输出一个\\而不是表示转义字符,正则表达式必须存\\\\,实际在内存中就是两个字符\\和\\,但是java中要分别表示这两个\\,每个都必须写成"\\\\",因此要写成"\\\\\\"。

关于JAVA正则表达式里的\\
不看后面的\\\\,前面应该是\\\A,其中\\\\为转义字符表示\\,即\A,这个是一个整体,,\\uxxxx这种格式是Unicode写法,表示一个字符,41应该是16进制数,4*16+1=65,相比较十进制ascii码值知道65对应的是A,我不知道这里为什么写a,可能是写错了吧。

java 正则表达式\\\\.什么意思
这个实际上(在正则表达式里)就是\\.,但是你的表达式是在写在java字符串里的,而java字符串里的\\是一个转义符号,例如\\t表示水平制表符,\\n表示换行符,只有\\\\表示\\这个符号本身。

“\\\\|”这个符号在java正则表达式中表示的是什么意思?是或吗?_百度知 ...
java中\\本身具有转义作用,\\\\表示\\ ,'\\\\|'传给正则就是"\\|",表示对|进行转义,不作为特殊字符使用

正则表达式\\\\\\什么意思啊
java里的"\\"需要转意,System.out.println("\\\\".matches("\\\\\\"));左侧的"\\\\",表示一个"\\";在正则式中"\\\\\\",正则表达式用字符串表示时,一个反斜线需要两个反斜线表示,而两个反斜线当然就用四个表示了。上面输出应该是"true".如需要相关视频文件,请发邮件:weatherlyxiaowei@yeah.net ...

Java中反斜线\\的使用彻底把我搞晕了,请高手为我好好梳理梳理
如果需要转义,前面也需要加一个\\。你可以简单理解,java中的\\之前必须有一个\\进行转义,即java中的\\均是以偶数出现的。可以将\\\\理解为一个\\。你的问题可以是这样的:\\\\. 等价与 \\.\\\\\\等价于 \\\\ 至于你说的\\\\\\我并没有在java正则表达式中见到过,能举个例子吗?

JAVA中的正则表达式“\\\\[([^\\\\]]+)\\\\]”这个表示什么意思?两个转义字符...
在正则中括号表示字符集,要表示中括号字符必须转义 整个正则匹配 中括号中的内容 开头的\\\\[ 匹配" [ "字符 尾部的\\\\]匹配 “]"字符 中间的[([^\\\\]]+),表示所有非"]"字符组成的字符串

正则表达式:\\\\(([^\\\\(\\\\)]*)\\\\)是什么意思
用的语言是java吧?java中 \\ 是转义字符,所以为了实现正则表达式中 \\ 的作用,java中用 \\\\这种折中的策略,这个写成标准正则是这样 \\ ( ( [ ^ \\ ( \\ ) ] * ) \\ )最外层的 \\ (...\\ )代表匹配左右括号 里面的 ( [ ^ \\ ( \\ ) ] * ) 代表匹配0个或多个不包含左右括号的任意...

一个正则表达式\\\\b问题
首先,我看你的表达式,错漏百出,例如:{1}既然重复一次,还干嘛写出来呢?[.[^\\"\\\\<]]* 又是除一些字符以外,那加上一个位置干什么?还有里边的[^\\"\\\\<],我还\\\\\\…咧,都不明白究竟写的什么。是java吧?\\要转义。你\\s知道改成\\\\s,那\\"为什么不呢?总之不知道你要搞什么。你就...

在正则表达式中\\\\.和.有什么区别?
所以Java正则表达式中匹配一个普通的反斜杠是\\\\\\。所以如果在[]内表示一个],要写两个\\,即[\\\\]]。例如,我要在前面不是0-9,也不是) ] }三个反括号的后面位置中,匹配 - 的后面是数字或者正括号( [ { 的 - 前面的位置,须写成:(?<![0-9)}\\\\]])(?=-[0-9({\\\\[]) ...

相似回答
大家正在搜