‘壹’ java 字符串 转义
public String str = "我是字符串\\n";
在C#中 @ 表示原意字符串,而在JAVA中则没有。
例如:
在C#中可以这样定义字符串。
string text = @"My pensive SARA ! thy soft cheek reclined
Thus on mine arm, most soothing sweet it is
To sit beside our Cot,...";
但是在JAVA中,这就会出错,你必须使用“+”符号将两行字符连接起来。
‘贰’ java正则 /\t/ new RegExp("\\t") 为什么要双转义
因为java的正则表达式在是字符串里的,\是java字符串中的转义符。\也是正则表达式中的转义符。那么只加一个\的话,只能说明在字符串中转义符,而java需要进一步把普通字符串中的\变成正则表达式中的\,像是更深一则转化的意思,这样\\以后的意思是正则表达式中的转义符(\)。
要把\把变成正则表达式中的\,所以\\是转义了一个\
我的回答简而言之,在java中(别的语言有别的规矩),正则表达式字符串,和普通字串是两个东西。
‘叁’ java正则表达式式中的转义符问题
因为正则表达式的\是转义符
同时\有事java的字符串的转义符
我们换个说法
假设正则比表达式里面用$作为转义符,你要查找\就要写为$\
而java字符串里面,\是转义符,所以需要写成$\\
我们假设后面转义好的\\为a,则是$a
再把$转化为真实的\,同时java里面\需要转义,所以是\\a
把a替换回去就是\\\\
只写2的话,是转义符后面有需要转义的东西,所以出错
‘肆’ java 正则匹配修改字符串
在java里面,'\'被当作转义字符,'\r'、'\n'分别表示回车换行,'\t'是制表符,这些楼主应当知道吧。我不明白楼主为何要在哪里加\r\n,是想要输出换行,还是想就显示成\r\n。至于这里为什么会出现这种结果,我猜测可能是Pattern类匹配时是按行来的,具体是不是这样,楼主可以自己用eclipse工具查看一下compile的源码。我这里现在没有工具,所以不能替你查了。compile("(<span.*?>)(.*)(</span>)",Pattern.CASE_INSENSITIVE);我认为应当有一个类似Pattern.CASE_INSENSITIVE的公有静态参数可以控制不处理换行符的,楼主自己看看。
‘伍’ JAVA中正则双斜线和单斜线转义的问题
在java里面反斜杆是转义的意思,在正则表达式里面反斜杆也是转义的意思。java里面2个反斜杆,实际输出的是一个反斜杆。你那个正则表达式实际的验证规则是 \[(.*)\] ".*"。由于[]中括号是正则表达式里面的关键字,所以要转义。所以你最终匹配的样式是[(.*)] ".*"这个样子的。
‘陆’ java正则,转义的意思,不太理解
转义就是把特殊字符转义为普通字符
‘柒’ 请教java正则表达式的转义字符问题
1 /**
2 * 转义正则特殊字符 ($()*+.[]?\^{}
3 * \\需要第一个替换,否则replace方法替换时会有逻辑bug
4 */
5 public static String makeQueryStringAllRegExp(String str) {
6 if(StringUtils.isBlank(str)){
7 return str;
8 }
9
10 return str.replace("\\", "\\\\").replace("*", "\\*")
11 .replace("+", "\\+").replace("|", "\\|")
12 .replace("{", "\\{").replace("}", "\\}")
13 .replace("(", "\\(").replace(")", "\\)")
14 .replace("^", "\\^").replace("$", "\\$")
15 .replace("[", "\\[").replace("]", "\\]")
16 .replace("?", "\\?").replace(",", "\\,")
17 .replace(".", "\\.").replace("&", "\\&");
‘捌’ java 正则表达式\\d什么意思
实际上是\d,因为Java中\是转义字符前导符,所以在字符串中书写\必须得写成\\才能正确识别,所以正则表达式中的\d就表示为\\d的。至于正则表达式各捕获的含义,规则很多,详情网上可以搜,Java API文档也能查到,从String的match方法那里找。\d表示数字
‘玖’ JAVA中的正则表达式“\\[([^\\]]+)\\]”这个表示什么意思两个转义字符是为了表达什么
在正则中括号表示字符集,要表示中括号字符必须转义
整个正则匹配 中括号中的内容
开头的\\[ 匹配" [ "字符
尾部的\\]匹配 “]"字符
中间的[([^\\]]+),表示所有非"]"字符组成的字符串
‘拾’ java正则表达式当中\d中的\是转义的意思吗
正则表达式中“[”这样的字符有特殊的意义,所以需要写成“\[”。但是“\”本身也是具有特殊意义的转义字符。
所以“\[”就需要写成“\\[”。需要先对“\”进行一次转义