簡體   English   中英

Java字符串帶正則表達式

[英]Java String strip with regular expression

如何在特定范圍內(最好使用正則表達式)刪除前導字符和尾隨字符?

例如,如果我想刪除開頭和結尾的英文字母:

aa11bb22cc ----> 11bb22

我注意到推薦的Apache Commons StringUtils.strip()實用工具方法不支持正則表達式輸入。 例如:

String a = "aa11bb22cc";
a = StringUtils.strip(a, "[a-zA-Z]");
System.out.println(a);

輸出:

11bb22cc

[a-zA-Z]被視為7個文字字符的列表。

使用Java的String#replaceAll()方法將目標字符替換為空白(即“刪除”):

str = str.replaceAll("(?i)^[a-z]+|[a-z]+$", "");

正則表達式的意思是“忽略大小寫,在開始后結束前立即匹配字母”

試試這個模式

^[a-zA-Z]+|[a-zA-Z]+$

演示版

^               # Start of string/line
[a-zA-Z]            # Character Class [a-zA-Z]
+               # (one or more)(greedy)
|               # OR
[a-zA-Z]            # Character Class [a-zA-Z]
+               # (one or more)(greedy)
$               # End of string/line

暫無
暫無

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

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