牛骨文教育服务平台(让学习变的简单)
博文笔记

java用正则表达式匹配或替换反斜杠()的问题

创建时间:2014-06-10 投稿人: 浏览次数:809

在正则表达式中,  表示转义符不能单独存在。  要表示字符‘’ ,就应该写\ 。 意思是前一个转义符,转义了后面一个

而在java中也是转义符,同上,也应该用\

 

匹配:

  1. public class FanXieGang { 
  2.     public staticvoid main(String[] args) { 
  3.         String str1 = "\"; 
  4.         System.out.println("str1:" + str1); 
  5.         String str2 = "\"; 
  6.         System.out.println("str2:" + str2); 
  7.          
  8.         Pattern pattern = Pattern.compile(str1 + str1); 
  9.         Matcher matcher = pattern.matcher(str2 + "abcdefg"); 
  10.          
  11.         while (matcher.find()){//查找符合pattern的字符串   
  12.         System.out.println("查找到的:" + matcher.group()); 
  13.         }    
  14.     } 
  15. }

替换:

java反斜杠 和 string.replaceAll要替换反斜杠

java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠 例如 str1="aabb"; str2="aa"bbb"; 要想替换成 str1="aa\bbb";str2="aa"bbb"; 必须这样替换: str1 = str1.replaceAll("\\", "\\\\"); str2 = str2.replaceAll(""",\\"); 原因如下: String 的 replaceAll() 方法,实际是采用正则表达式的规则去匹配的, \\ ,java解析为\交给正则表达式, 正则表达式再经过一次转换,把\转换成为 也就是java里面要用正则来表示一个. 必须写成4个 如果要表示\,那就要写8个 所以如果写成: str1 = str1.replaceAll("\", "\\"); 就会报正则表达式的错误。

 

 

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。