亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SCJP6正則表達式問題

SCJP6正則表達式問題

PIPIONE 2019-09-27 15:58:13
我對以下示例有疑問:import java.util.regex.*;class Regex2 {    public static void main(String[] args) {        Pattern p = Pattern.compile(args[0]);        Matcher m = p.matcher(args[1]);        boolean b = false;        while(b = m.find()) {            System.out.print(m.start() + m.group());        }    }}和命令行:java Regex2 "\d*" ab34ef有人可以向我解釋一下,為什么結果是:01234456正則表達式模式為d *-表示第一個或多個,但在args [1]中還有更多位置,謝謝
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

\d*匹配0個或多個數字。因此,它甚至會匹配每個字符之前和最后一個字符之后的空字符串。首先在index之前0,然后在index之前1,依此類推。


因此,對于string ab34ef,它匹配以下組:


Index    Group

  0        ""  (Before a)

  1        ""  (Before b)

  2        34  (Matches more than 0 digits this time)

  4        ""  (Before `e` at index 4)

  5        ""  (Before f)

  6        ""  (At the end, after f)

如果您使用\\d+,那么您只會在那里得到一個小組34。


查看完整回答
反對 回復 2019-09-27
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

不,*表示零或更多。+表示一個或多個。

查看完整回答
反對 回復 2019-09-27
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

如果0索引指向“ Before a”并且2索引位于處,34怎么可能呢?如果0之前,那么豈不是3說在指數34?掃描儀是否在一個位置并向左看?掃描儀的位置是否在,但在之前在

查看完整回答
反對 回復 2019-09-27
  • 3 回答
  • 0 關注
  • 592 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號