正則表達式中的轉義字符在Java代碼中和在數據庫中不同表示

項目中發現一個關於正則表達式的問題:

 

在code中

Pattern.compile("http://blog.sina.com.cn/s/blog_[A-Za-z0-9]+\\.html");

 在table中

http://blog.sina.com.cn/s/blog_[A-Za-z0-9]+\.html

 

注意“\\.html”

不同在於轉義字符的使用,代碼中需要兩個\\,而數據庫中只需一個\

 

原因分析

我猜是java代碼中定義字符串變量時使用雙引號,而斜線\本身是java字符串語法中的轉義字符,因此我們如果期望獲得一個java正則表達式中的轉義字符,則需再code中再加一個斜線\,否則只用一個的話,會被java編譯器識別爲java字符串的轉義字符。

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