正则表达式>>>java中匹配一个反斜杠要用四个反斜杠

1.正则表达式中匹配一个反斜杠要用四个反斜杠,为什么呢?
我一直以为匹配一个反斜杠只需要两个反斜杠,但是java代码中实际测试被狠狠打脸了,然后就疯狂百度加测试,最后得出结论是java中匹配一个反斜杠要用四个反斜杠

2.具体原因说明
特别注意: \在Java和正则表达式中都是转义字符
分析一下“\\\\”,第一个斜杠是转义符,第二个斜杠是斜杠本身,第三个斜杠是转义符,第四个斜杠是斜杠本身。

1.字符串里面表示斜杠需要两个斜杠如“\\”

2.正则表达式里的斜杠也需要转义,是用“\\”标示。

这样就相对比较好理解

我们先要表示正则表达式里面的斜杠“\”,然后再用字符串表示出来。而这2个斜杠分别需要一个转义符,这样就成了4个斜杠在正则表达式里面表示一个斜杠。


	public void test() {

        String filterstr=".*[\\\\/:*?\"<>|].*";
        String docsPath="hel\\lo";
        if(docsPath.matches(filterstr)) {
        	System.out.println(docsPath);
        }else {
        	System.out.println("no match");
        }
		
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章