解读047关于正则表达式'[^Ale|ax.r$]'
??
92. Evaluate the following expression using meta. character for regular expression:'[^Ale|ax.r$]' Which two matches would be returned by this expression? (Choose two.) A. Alex B. Alax C. Alxer D. Alaxendar E. Alexender Answer: DE 首先看些Oracle正则表达式语法,正则表达式是在10g才添加进来的,其匹配字符、量词字符、匹配选项、相关函数如下: 匹配字符:
量词字符:
匹配选项:
函数: REGEXP_LIKE 是LIKE语句的正则表达式版本 语法:REGEXP_LIKE(源字符串,匹配表达式[,匹配选项]) REGEXP_INSTR 返回源字符串中首次匹配正则表达式的起始位置 语法:REGEXP_INSTR(srcstr,pattern [,position [,occurrence[,return_option [,match_option]]]]) srcstr:源字符串 pattern:正则表达式 position:搜索开始位置 occurrence:返回第几个匹配项 return_option:返回选项,0表示开始位置,1表示返回匹配的结束位置 match_option:匹配选项 REGEXP_SUBSTR 返回源串中匹配正则表达式的子字符串 语法:SUBSTR(srcstr,occurrence [,match_option]]]) srcstr:源字符串 pattern:正则表达式 position:搜索的开始位置 occurrence:返回第几个匹配的字符串 match_option:匹配选项 REGEXP_REPLACE 用执行字符串替换源文本中与正则表达式匹配的字符串 语法:REGEXP_REPLACE(srcstr,replacestr [,position[,match_option]]]]) srcstr:源字符串 pattern:正则表达式 replacestr:新的字符串 position:搜索起始位置 occurrence:第几个匹配项 match_option:匹配选项 题目的意思是哪两个选项能和'[^Ale|ax.r$]'匹配 '[^Ale|ax.r$]'中^表示只匹配不在集合{'A','l','e','|','a','x','.','r','$'}中的字符,此处的'|'、'.'、'$'只是表示普通的字符,而非匹配符 select regexp_instr('Alex','[^Ale|ax.r$]') from dual; REGEXP_INSTR('ALEX','[^ALE|AX.R$]') ----------------------------------- 0 select regexp_instr('Alax','[^Ale|ax.r$]') from dual; REGEXP_INSTR('ALAX','[^ALE|AX.R$]') ----------------------------------- 0 select regexp_instr('Alxer','[^Ale|ax.r$]') from dual; REGEXP_INSTR('ALXER','[^ALE|AX.R$]') ------------------------------------ 0 select regexp_instr('Alaxendar','[^Ale|ax.r$]') from dual; REGEXP_INSTR('ALAXENDAR','[^ALE|AX.R$]') ---------------------------------------- 6 select regexp_instr('Alexender','[^Ale|ax.r$]') from dual; REGEXP_INSTR('ALEXENDER','[^ALE|AX.R$]') ---------------------------------------- 6 因此可见答案是DE (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |