自从oracle10g支持正则表达式以来,受到很多人的喜欢,因为可以通过很少的代码便可以解决很多的问题,例如批量更新等。但对于国内用户来说,可能会遇到一个比较困扰的问题,就是使用在其他很多语言中都可以成功的中文匹配正则表达式,在oracle这里失效了,那到底oracle要怎么才能成功匹配中文呢?
请用\w
按照常规来说,在正则表达式中,匹配中文的代码是\u4e00-\u9fa5,但这对oracle来说却毫无作用,例如,我想匹配格式如“01-大夫山场馆建设-0623-01”这样的数据时,用(\d)*(-)*(\u4e00-\u9fa5)*-\d{4}-\d*是无法成功的,但只要改为(\d)*(-)*(\w)*-\d{4}-\d*就可以了
本文介绍了在Oracle数据库中使用正则表达式匹配中文字符的方法。通常使用的Unicode范围u4e00-u9fa5在Oracle中并不适用,而使用w可以成功匹配包含中文的数据。

3197

被折叠的 条评论
为什么被折叠?



