1. 程式人生 > >正則替換字串的全形 半形標點符號

正則替換字串的全形 半形標點符號

                感謝【火龍果】,欽佩他的研究精神。http://topic.csdn.net/u/20080925/15/41b814bf-fcaf-4b37-be91-10561a102768.html測試程式碼如下:
  1. class T {
  2. publicstaticvoid main(String... args) {
  3.     String str = "!!!!去符號標號!!當然。!!..**半形";
  4.     System.out.println(str);
  5.     System.out.println(str.replaceAll("//p{Punct}"""));
  6.     System.out.println(str.replaceAll("//pP"""));
  7.   }
  8. }
執行結果!!!!去符號標號!!當然。!!..**半形!!去符號標號!!當然。半形去符號標號當然半形果子的解釋採用 Unicode 標點屬性方式的正則表示式,可以去掉所有的標點符號, 包括全形、半形、橫排、豎排等的標點符號。 注意一下,如果在 JDK 5 或以下的環境中,全形單引號對、雙引號對 無法替換掉,這是 JDK 5 及以下版本缺失的,在 JDK 6 中由於加入了 Pi 和 Pf 兩個 Unicode 子屬性,因此就能替換掉。 在 JDK 6 以下的版本中可以這樣:
  1. str = str.replaceAll("[//pP‘’“”]""");
我查到的 /pP的說明來自於 http://www.unicode.org/reports/tr18/