oracle正则表达式 查询value中只包含任何中文和数字的记录.
1个回答
2017-09-13
展开全部
用regexp_like这个函数来解决,正则表达式为:[[:punct:]]+这个正则可以找出任何标点符号。查询value中包含任何标点符号的记录如下:select*fromxxxwhereregexp_like(value,'[[:punct:]]+');POSIX正则表达式由标准的元字符(metacharacters)所构成:'$'匹配输入字符串的结尾位置。如果设置了RegExp对象的Multiline属性,则$也匹配'\n'或'\r'。'?'匹配前面的子表达式零次或一次。'*'匹配前面的子表达式零次或多次。'|'指明两项之间的一个选择。例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的'()'标记一个子表达式的开始和结束位置。'{m,n}'一个精确地出现次数范围,m=<出现次数<=n,'{m}'表示出现m次,'{m,}'表示至少出现m次。\num匹配num,其中num是一个正整数。对所获取的匹配的引用。[[:alpha:]]任何字母。[[:digit:]]任何数字。[[:alnum:]]任何字母和数字。[[:space:]]任何白字符。[[:upper:]]任何大写字母。[[:lower:]]任何小写字母。[[:punct:]]任何标点符号。[[:xdigit:]]任何16进制的数字,相当于[0-9a-fA-F]。\转义符*,+,?,{n},{n,},{n,m}限定符^,$,anymetacharacter位置和顺序。
追问
谢谢,谢谢。在弄字母占字符长度时要不要区分中文符和英文符?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询