天天看點

java正則替換特殊符号

java 中怎麼用正規表達式删除"[ " 或 " ]" 一些特殊字元 先謝了
String pattern = "([-+*/^()\\]\\[])";String test = "1237019830+32[89-234]234";System.out.println("------test1=["+test+"]");test = test.replaceAll(pattern, "");System.out.println("------test2=["+test+"]");這個應該能夠滿足你的要求,已測試。------test1=[1237019830+32[89-234]234]------test2=[12370198303289234234]preg_replace:正規表達式是用來操作不确定的字元串的,比如說,你不确定裡面是有“a apple”還是有“a orange”,是以你就要用正則去查找,找一個他倆都能比對的正規表達式,就可以查找,但是你所說的問題是将空格替換,完全沒有必要,因為對于高性能的程式來說速度很重要,用str_replace可以節約大量的時間,用:str_replace(‘ ’,‘$nbsp’,$string)。對于其他的字元轉換為html特殊字元,可以使用htmlspecialchars函數,将進行一下轉換。& (和号) 成為 & amp;" (雙引号) 成為 & quot;' (單引号) 成為 & #039;< (小于) 成為 & lt;> (大于) 成為 & gt;我突然發現& nbsp 連在一起在百度知道中是不好用的,是以隻好打$nbsp了。你先具體說說要删除的字元都包括那些,然後才能幫你寫正則啊Pattern類,自己好好看一下吧
< >' " | \ + % java正規表達式不包含特殊字元 ^'/\"()@$%^*<>&? 這兩條正則表達
[^]這個就是用來表示排除的。
Java 中正規表達式的例子
去電驢下載下傳馬士兵的關于正規表達式的看看吧,不錯。
\\(hello\\)這個是這樣的:
目标是比對(hello),因為正規表達式裡括号是有特别含義,是以要轉義,是以正規表達式是\(hello\),本來這樣就好了,不過前面這個東西放在java的字元串裡面的話,比如String s = "\(hello\)",又因為\在JAVA有特殊意思,是以又要将\轉義,是以就成了String s = "\\(hello\\)"正則中  ?=表示零寬先行斷言  (具體含義請檢視下面網址)  ?<=表示後寬先行斷言  (具體含義請檢視下面網址)  ^() 表示除了()以外的字元  | 表示把不同的規則分隔開 也可以了解為或者的含義大緻應該是 比對出 指定字元串中含有+-*/符号的之前的字元 或者是之後的字元能看到它在程式中的應用 那就更容易判斷正則也很久沒搞了 不是很肯定。x 字元 x 
\\ 反斜線字元 
\0n 帶有八進制值 0 的字元 n (0 <= n <= 7) 
\0nn 帶有八進制值 0 的字元 nn (0 <= n <= 7) 
\0mnn 帶有八進制值 0 的字元 mnn(0 <= m <= 3、0 <= n <= 7) 
\xhh 帶有十六進制值 0x 的字元 hh 
\uhhhh 帶有十六進制值 0x 的字元 hhhh 
\t 制表符 ('\u0009') 
\n 新行(換行)符 ('\u000A') 
\r 回車符 ('\u000D') 
\f 換頁符 ('\u000C') 
\a 報警 (bell) 符 ('\u0007') 
\e 轉義符 ('\u001B') 
\cx 對應于 x 的控制符 
[abc] a、b 或 c(簡單類) 
[^abc] 任何字元,除了 a、b 或 c(否定) 
[a-zA-Z] a 到 z 或 A 到 Z,兩頭的字母包括在内(範圍) 
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) 
[a-z&&[def]] d、e 或 f(交集) 
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](減去) 
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](減去) 
預定義字元類 
. 任何字元(與行結束符可能比對也可能不比對) 
\d 數字:[0-9] 
\D 非數字: [^0-9] 
\s 空白字元:[ \t\n\x0B\f\r] 
\S 非空白字元:[^\s] 
\w 單詞字元:[a-zA-Z_0-9] 
\W 非單詞字元:[^\w] 
目标是比對(hello),因為正規表達式裡括号是表示在()中的是一個整體,不是普通字元是以要使用“\”轉義字元進行轉義成為普通字元,但是"\"在正規表達式中是轉以字元,是以要用"\"把“\”轉義成為普通字元,是以要寫成\\(hello\\),在正規表達式中要表示"\"要寫成"\\\\".
java正規表達式如何判斷字元串中是否含有特殊字元
public class Test2 { 
 public static void main(String[] args){
 String s = "123asdqwe__123 rew-trafgds";
 if(s.replaceAll("[a-z]*[A-Z]*\\d*-*_*\\s*", "").length()==0)
System.out.println("input correct");
 else 
System.out.println("input incorrect");
}/[^\da-zA-Z_\- ]/g;
如果true,則含有其他字元可以。java正規表達式:32=\"1\"\\s+59=\"0000\"
完整的程式如下:
public class ll {
 public static void main(string[] args) {
  string s="";
  system.out.println(s.replaceall("32=\"1\"\\s+59=\"0000\"", ""));
}運作結果: