正则表达式\$[0-9]+[.]?[0-9]*与\$[0-9]+(?:\.[0-9]*)?的区别 100
正则表达式\$[0-9]+[.]?[0-9]*与\$[0-9]+(?:\.[0-9]*)?的区别...
正则表达式\$[0-9]+[.]?[0-9]*与\$[0-9]+(?:\.[0-9]*)?的区别
展开
2个回答
展开全部
相同点:
在不使用引用捕获分组的情况下,两条正则都能从文本中匹配到由“$”开头并且由“.”分割的数字字符串,其实也就是商品价格。 例如从文本:
书名:Python学习手册 价格:$28.88
匹配得到:$28.88
不同处:
如果在使用引用捕获分组的情况下的话,第二条正则可以通过引用编号为1的分组获得匹配字符的前半部分,也就是“$28” 从而忽略之后的小数部分,而第一条正则始终只能完整的匹配整个价格字符。
因为第二条正则使用了非捕获分组在这里也顺便拓展下:
非捕获分组类似普通的捕获分组,只是在开括号后紧跟一个问号和冒号,这样的括号叫做非捕获型括号,它只能限定量词的作用范围,不捕获任何文本。非捕获分组不需要保存匹配的文本,整个表达式的效率也因此提高,但是看起来不如捕获分组美观。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询