今天公司让我做一个过滤字符串的算法, 我想了想觉得使用正则表达式是个不错的选择 然后查了一下正则表达式的资料 ,好东西我肯定想着大家伙啦 废话不多说 直接分享。


在代码中过滤 非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范围中一个字符(交集)