[英]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.