如何删除领先&在一定范围内的尾随字符(最好是正则表达式)?
例如,如果我想删除领先&尾随英文字母:
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个字面字符的列表。
答案 0 :(得分:3)
使用java的String#replaceAll()
方法替换为空白(即"删除")目标字符:
str = str.replaceAll("(?i)^[a-z]+|[a-z]+$", "");
正则表达式意味着"忽略大小写,在结束之后立即匹配字母或结束之前#34;
答案 1 :(得分:1)
尝试这种模式
^[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