所以我是新來的Java和正則表達式有一些麻煩。我試圖在一個字符串中找到有翼的評論(/* */
)和行尾註釋(//
),以便我可以沿着它們拆分並將其放入數組中。Java REGEX:匹配註釋和不匹配特定字符
這是我目前正則表達式有:
stringofstuff.split("[!//.*?\n!]");
和它的作品,但我的問題是,它還可選配字符「」所以當字符串包含一個數字如90.55
,我的數組看起來像[90, 55]
這不是我想要的。我試着加入^\\.
的正則表達式的右方括號後結束:
stringofstuff.split("[!//.*?\n!]^\\.");
,並在不匹配.
成功,但它不再承認任何類型的註釋!我不知道哪裏出錯,有什麼建議?
對於你打算在許多情況下仍失敗的記錄。例如'System.out.println(「/ *」);'還有很多細微的角落案例。這不能用正則表達式正確地完成。 – djechlin
正則表達式是錯誤的工具 - 你需要一個解析器。此外,您目前正在從您的分組中收到評論和評論之間的非ccmments。 – Bohemian
謝謝你們,你說的沒錯。正如其他人回答的那樣,我通過使用Java中的模式/匹配工具來找到我需要的組,並從其開始索引中刪除其末尾索引來解決此問題。再次謝謝你。 – user1866803