今天公司让我做一个过滤字符串的算法, 我想了想觉得使用正则表达式是个不错的选择 然后查了一下正则表达式的资料 ,好东西我肯定想着大家伙啦 废话不多说 直接分享。
在代码中过滤 非0-9的字符串, 只需要修改正则表达式的条件就可以过滤出我们须要的字符串 嘿嘿~~~。
复制内容到剪贴板
代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
public class check {
public static String StringFilter(String str) throws PatternSyntaxException {
String regEx = "[^0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
public static void main(String[] args) {
String str = "sdfdsfsdfgfdg2134234fdgdfg6456456fdgdfhh4234523分剑荡四方进口量缩减跌幅完额";
System.out.println(StringFilter(str));
//这样字符串就过滤出来啦
}
加入特定限制条件「[]」
[a-z] 条件限制在小写a to z范围中一个字符
[A-Z] 条件限制在大写A to Z范围中一个字符
[a-zA-Z] 条件限制在小写a to z或大写A to Z范围中一个字符
[0-9] 条件限制在小写0 to 9范围中一个字符
[0-9a-z] 条件限制在小写0 to 9或a to z范围中一个字符
[0-9[a-z]] 条件限制在小写0 to 9或a to z范围中一个字符(交集)
[]中加入^后加再次限制条件「[^]」
[^a-z] 条件限制在非小写a to z范围中一个字符
[^A-Z] 条件限制在非大写A to Z范围中一个字符
[^a-zA-Z] 条件限制在非小写a to z或大写A to Z范围中一个字符
[^0-9] 条件限制在非小写0 to 9范围中一个字符
[^0-9a-z] 条件限制在非小写0 to 9或a to z范围中一个字符
[^0-9[a-z]] 条件限制在非小写0 to 9或a to z范围中一个字符(交集)