首页 > 试题广场 >

用正则表达式a+?b来尝试匹配aaabbb可以匹配到的结果是

[单选题]
用正则表达式 a+?b 来尝试匹配 aaabbb 可以匹配到的结果是
  • aaabbb
  • ab
  • aaab
  • b

量词表示一个子表达式可以匹配的次数。量词可以用来修饰一个字符、字符组,或是用()括起来的子表达式。一些常用的量词被定义成独立的元字符。

 

表达式

说明

举例

{m}

表达式匹配m次

“\d{3}”相当于“\d\d\d ”

“(abc){2}”相当于“abcabc”

{m,n}

表达式匹配最少m次,最多n次

“\d{2,3}”可以匹配“12”或“321”等2到3位的数字

{m,}

表达式至少匹配m次

“[a-z]{8,}”表示至少8位以上的字母

?

表达式匹配0次或1次,相当于{0,1}

“ab?”可以匹配“a”或“ab”

*

表达式匹配0次或任意多次,相当于{0,}

“<[^>]*>”中“[^>]*”表示0个或任意多个不是“>”的字符

+

表达式匹配1次或意多次,至少1次,相当于{1,}

“\d\s+\d”表示两个数字中间,至少有一个以上的空白字符

 

注意:在不是动态生成的正则表达式中,不要出现“{1}”这样的量词,如“\w{1}”在结果上等价于“\w”,但是会降低匹配效率和可读性,属于画蛇添足的做法。
从上述定义有关正则量词符号‘’?‘’和‘’+‘’可以看出 正则表达式 a+?b 来尝试匹配 aaabbb 这个题目解答的意思就是 a 和 b 之间至少有一个a 到b结束 我理解是这样 可能有误 希望大家指正

发表于 2023-05-04 11:02:56 回复(0)
链接:https://www.nowcoder.com/questionTerminal/c85c47936fe14a4493378bac6eb3e602?page=1&onlyReference=false
来源:牛客网
我是用python语言来回答的: 正则表达式中的匹配符号可能在其他语言中存在差异
a +?b     这段正则表达式的意思是 从小写a字母开始到小写字母b结束,中间部分+?表示匹配前一个字符至少0个至多n 个 
+ 表示匹配前一个字符(也就是a)至少1次到多次,?表示非贪婪模式,匹配前一个字符至多1次,至少0次(也就是没有)
+ ? 相结合就表示匹配前一个字符 至少0次至多n次
a +?b  也就是 从小写字母a开始匹配可以匹配任意次a至到没有a为止,最后一个字符必须是b
用a +?b来匹配 aaabbb    结果就是    aaab

python 代码
import re
test_ = 'aaabbbb' print(re.match('a+?b',test_).group())
截图:

编辑于 2023-05-05 19:24:18 回复(0)