获取模式组
我有一个字符串
"This order was placed for QT3000! OK?"
我也有类似的模式
"(.*)(\\d+)(.*)"
我认为现在根据模式
group(0):“这个订单是为QT3000订的!好吗?”
group(1):此订单是为QT而下的
第(2)组:3000
小组(3):! 好?
如果有什么问题,请纠正我
谢谢
group(0):“这个订单是为QT3000订的!好吗?”
这当然是对的。
group(1):此订单是为QT而下的
如果你注意到,正则表达式使用贪心量词.*
在\\d+
之前。 因此正则表达式将尽可能多地匹配,并且只留下\\d+
的单个数字以匹配。 group(1)
实际上将包含 – This order was placed for QT300
第(2)组:3000
它将只包含最后的0
,而不是3000
。
小组(3):! 好?
正确。
如果你想在数字之前捕获所有内容,那么最好使用这个正则表达式使用\D*
:
^(\\D*)(\\d+)(.*)$