解读047关于正则表达式'[^Ale|ax.r$]'
2014-08-24 09:12
288 查看
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, pattern [, position [, occurrence [, match_option]]])
srcstr:源字符串
pattern:正则表达式
position:搜索的开始位置
occurrence:返回第几个匹配的字符串
match_option:匹配选项
REGEXP_REPLACE 用执行字符串替换源文本中与正则表达式匹配的字符串
语法:REGEXP_REPLACE(srcstr, pattern [,replacestr [, position[, occurrence [, 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
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才添加进来的,其匹配字符、量词字符、匹配选项、相关函数如下:
匹配字符:
字符 | 功能 |
^ | 标记行的开始 |
$ | 标记行的结束 |
= = | 匹配字符族,如:[=a=] 可匹配字符a、â、ã、ä、å等 |
. | 匹配任何字符(除了NULL) |
[:alnum:] | 匹配任何字母和数字 |
[:alpha:] | 匹配任何字母 |
[:blank:] | 匹配空格 |
[:cntrl:] | 匹配任何控制字符(在ASCII码表中不可打印的字符,如ESC键) |
[:digit:] | 任何数字 |
[:graph:] | 任何 标点符号、大小写字母以及数字 |
[:lower:] | 任何小写字母 |
[:print:] | 任何可打印的字符 |
[:punct:] | 任何标点符号,如,.+-=等 |
[:space:] | 任何空白字符,如回车、换行、制表等 |
[:upper:] | 任何大写字母 |
[:xdigit:] | 任何十六进制数字,即0-9A-F |
| | 分隔符 |
() | 子表达式,可作为量词或向后引用的前段 |
[char] | 匹配括号中的任何字符,[^char]表示除开括号中字符后的任何字符 |
字符 | 功能 |
* | 匹配0次或多次 |
? | 匹配0次或1次 |
+ | 匹配1次或多次 |
{m} | 匹配m次 |
{m,} | 匹配至少m次 |
{m,n} | 匹配至少m次,最多n次 |
\n | 引用第n个匹配 |
字符 | 功能 |
c | 匹配时区分大小写 |
i | 匹配时不区分大小写 |
m | 源字符串为多行匹配 |
n | .可匹配任何换行符 |
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, pattern [, position [, occurrence [, match_option]]])
srcstr:源字符串
pattern:正则表达式
position:搜索的开始位置
occurrence:返回第几个匹配的字符串
match_option:匹配选项
REGEXP_REPLACE 用执行字符串替换源文本中与正则表达式匹配的字符串
语法:REGEXP_REPLACE(srcstr, pattern [,replacestr [, position[, occurrence [, 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
相关文章推荐
- [每日一题] OCP1z0-047 :2013-08-22 正则表达式---[^Ale|ax.r$]'....................................92
- [每日一题] OCP1z0-047 :2013-08-22 正则表达式---[^Ale|ax.r$]'....................................9
- [每日一题] OCP1z0-047 :2013-08-22 正则表达式---[^Ale|ax.r$]'
- [转贴]解读 C# 中的正则表达式
- 解读C#中的正则表达式
- 解读 C# 中的正则表达式
- 解读 C# 中的正则表达式
- 解读C#中的正则表达式
- 解读 C# 中的正则表达式[来自网上]
- 正则表达式关于电话和邮箱在RegularExpressionValidator 中的验证
- 解读C#中的正则表达式(引自作者:刘彦青)
- [转贴]解读 C# 中的正则表达式
- 关于日期和其它的正则表达式,记不住,收集一下!^_^(待续)
- 转贴(csdn):解读 C# 中的正则表达式
- 蛙蛙请教:js里的match方法和exec方法的区别,关于正则表达式的
- 关于正则表达式
- 关于php正则表达式的两点备注
- 关于日期有效性验证的正则表达式
- 关于正则表达式、正则文法、NFA、LR(1)
- 解读 C# 中的正则表达式