本文介紹了版本差異?Java中的Regex轉義的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
似乎正則表達式轉義在不同的Java版本中工作方式不同。
在Java OpenJDK 16.0.1中,編譯工作正常
在Java OpenJDK 11.0.11中引發此編譯錯誤:
test.java:15: error: illegal escape character
if (variable.matches("s*")){
我知道,對于\
我通常是安全的。我的問題:
哪個版本更改了此行為?為什么會這樣呢?
推薦答案
新功能引入了吸引您注意的行為
共TextBlocks
此新功能最初是在Java 13中引入的,具體更改是您觀察到的行為的原因,它隨Java 14中包含的TextBlock的第二個預覽一起提供Text Blocks Second Preview。
根據文本塊第二次預覽
新的轉義序列僅轉換為一個空格
(U0020)。s轉義序列既可以在文本塊中使用,也可以在傳統的
字符串文字。
此外,Java 17的LTS版本中還正式包含了關于TextBlock的這一新功能。
這篇關于版本差異?Java中的Regex轉義的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,