2013-02-11 19 views
0

我用這個\x Escape in Java?問題,發現java中的十六進制轉義是\ u0048,但現在我想在java中使用regx進行十六進制序列匹配。這是我試過的,但它不起作用:在java中的十六進制轉義序列匹配

Pattern hex = Pattern.compile(「\\ u0048([0-9A-Fa-f] +)」);

有什麼建議嗎?

+0

不要(雙)轉義 - 使用一個反斜槓。 – 2013-02-11 21:26:55

+1

@BrianRoach:但'\ u0048'只有一個反斜槓,相當於'H'。我不認爲這可能是OP的想法,因爲我想不出任何可能的情況。 – ruakh 2013-02-11 21:42:15

+0

謝謝,看來Brian解決方案已經工作。 – user1433755 2013-02-11 22:03:01

回答

0

也許你想

Pattern hex = Pattern.compile("\\u([0-9A-Fa-f]{4})"); 

+0

不,這不起作用,我得到數字格式異常。 – user1433755 2013-02-11 21:26:52

+0

@ user1433755:那麼,正則表達式不會(也不能)引發'NumberFormatException'。你從其他一些代碼中獲得了這個例外;也許你在某處調用了'Integer.parseInt'或'Integer.valueOf'? – ruakh 2013-02-11 21:43:02

+0

是的,我正在使用(char)Integer.parseInt(m.group(1),16)拋出異常。 – user1433755 2013-02-11 21:59:34