java replaceAll之$替換

來源:互聯網
上載者:User

標籤:java   這一   illegal   iss   bsp   操作   match   net   read   

最近,在開發一個虛擬碼翻譯工具的過程中,遇到個問題,我們在虛擬碼中使用spring EL的規則,將非變數限定在${"1"}中,解析後根據內容相關的類型轉換為相應的java類型。在規則上,我們原先要求op1 op op2之間必須有空格,但是後來發現,有些地方仍然存在著操作符和運算元之間沒有空格的情況,為了儘可能多的相容,我們選擇根據上下文進行判斷,適當的預先處理以便後續解析不會出錯,於是需要進行類似下列處理:

lineText.replaceAll("#\\+", "# +").replaceAll("\\[email protected]", "+ @").replaceAll("\\+\\$", "+ $")

但是執行的時候報

Exception in thread "main" java.lang.IllegalArgumentException: Illegal group reference: group index is missing
at java.util.regex.Matcher.appendReplacement(Unknown Source)
at java.util.regex.Matcher.replaceAll(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)

經反覆檢查,replaceAll的第二個參數中也需要轉義,如下:

lineText.replaceAll("#\\+", "# +").replaceAll("\\[email protected]", "+ @").replaceAll("\\+\\$", "+ \\$")

但是,javadoc並沒有提到這一點。

 

java replaceAll之$替換

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.