正則:分組問題

來源:互聯網
上載者:User

資料

  • 走進臨沂
  • 城市名片
  • 投資優勢
  • 支柱產業
  • 縣域經濟
  • 投資服務
  • 正則1:

    (?<=href=(\"|'))([^\"']*)(?=(\1))

    匹配結果

    正則2:

    (?<=href=(\"|'))([^(\1)]*)(?=(\1))

    匹配結果

    問題
    正則1和正則2隻有中間的(\1)\"',按我的理解,此時的分組結果:\1要嗎是"或',此時的Regex2((?<=href=(\"|'))([^(\1)]*)(?=(\1)))應該能夠正常匹配url才對,而結果卻不是這樣的(如第2圖所示)

    回複內容:

    資料

  • 走進臨沂
  • 城市名片
  • 投資優勢
  • 支柱產業
  • 縣域經濟
  • 投資服務
  • 正則1:

    (?<=href=(\"|'))([^\"']*)(?=(\1))

    匹配結果

    正則2:

    (?<=href=(\"|'))([^(\1)]*)(?=(\1))

    匹配結果

    問題
    正則1和正則2隻有中間的(\1)\"',按我的理解,此時的分組結果:\1要嗎是"或',此時的Regex2((?<=href=(\"|'))([^(\1)]*)(?=(\1)))應該能夠正常匹配url才對,而結果卻不是這樣的(如第2圖所示)

    ([^(\1)]*)的問題在於方括弧裡面不能使用編號...

    ------------------

    補充: \1在方括弧是沒有後向引用的作用的. \1在方括弧中代表的意思是ctrl-a,16進位的\x01.就如\11匹配的是tab.
    參考:Escape sequences

    還有, \1如果有反向引用的作用,就有可能與 []是針對字元集裡的單個字元為單位進行匹配這個規則衝突.所以,\1[]沒有反向引用的作用.

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.