具有正则表达式的Java String strip

时间:2014-11-16 22:36:07

标签: java regex string trim

如何删除领先&在一定范围内的尾随字符(最好是正则表达式)?

例如,如果我想删除领先&尾随英文字母:

aa11bb22cc ----> 11bb22

我注意到推荐的apache commons StringUtils.strip()实用程序方法不支持regex输入。例如:

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

输出:

11bb22cc

[a-zA-Z]被处理为7个字面字符的列表。

2 个答案:

答案 0 :(得分:3)

使用java的String#replaceAll()方法替换为空白(即"删除")目标字符:

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

正则表达式意味着"忽略大小写,在结束之后立即匹配字母结束之前#34;

答案 1 :(得分:1)

尝试这种模式

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

Demo

^               # 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