簡體   English   中英

多個空格的Java正則表達式

[英]java regular expression for multiple spaces

我可以寫一行正則表達式來代替下面的五行嗎?

strTestIn = strTestIn.replaceAll("^\\s+", "");
strTestIn = strTestIn.replaceAll("[ ]+", " ");
strTestIn = strTestIn.replaceAll("(\\r\\n)+", "\r\n");
strTestIn = strTestIn.replaceAll("(\\t)+", " ");
strTestIn = strTestIn.replaceAll("\\s+$", "");

這些正則表達式有什么區別?

strTestIn = strTestIn.replaceAll("^\\s+", "");

刪除字符串開頭的空格。

strTestIn = strTestIn.replaceAll("\\s+$", "");

刪除字符串末尾的空格。

strTestIn = strTestIn.replaceAll("[ ]+", " ");

將多個空間壓縮為一個空間。

strTestIn =strTestIn.replaceAll("(\\r\\n)+", "\r\n");

通過用單個換行符替換相鄰的換行符來刪除空行。

strTestIn = strTestIn.replaceAll("(\\t)+", " ");

將制表符壓縮到一個空格中。

所以他們都做不同的事情。 具有相同替換字符串的字符串可以組合使用:

strTestIn = strTestIn.replaceAll("^\\s+|\\s+$", "");
strTestIn = strTestIn.replaceAll(" {2,}|\t+", " ");
strTestIn = strTestIn.replaceAll("(\r\n)+", "\r\n");

您還可以稍微清理和改進正則表達式(刪除一些不必要的反斜杠,並將最小空格數更改為2)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM