项目中发现一个关于正则表达式的问题:
?
在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字符串的转义字符。