項目中發現一個關於正則表達式的問題:
在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字符串的轉義字符。