baidu_27330673
liedezhanghao
采纳率100%
2015-05-18 16:39

请教一个关于java正则表达式的问题

一长串字符串中有字母数字逗号句号感叹号冒号空格退格符回车,我需要捕获的是所有“字母数字”的任意组合(区分大小写),而这些组合又由“逗号句号感叹号冒号空格退格符回车”的任意组合隔开,请问我该怎么写呢?
比如 “fdjfk23jkj0 ,. djfk !s2SJDKd djfk 232 : ! d .. s”字符串经过操作返回这样一个列表[fdjfk23jkj0,djfk,s2SJDKd,djfk,232,d,s]

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • t_jl1979 冥王之锤 6年前
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import java.util.regex.PatternSyntaxException;
    
    class Test {
        public static void main(String[] args) throws PatternSyntaxException {
            String subjectString = "fdjfk23jkj0 ,. djfk !s2SJDKd djfk 232 : ! d .. s";
            List<String> matchList = new ArrayList<String>();
            Pattern regex = Pattern.compile("\\p{Alnum}+", Pattern.MULTILINE);
            Matcher regexMatcher = regex.matcher(subjectString);
            while (regexMatcher.find()) {
                matchList.add(regexMatcher.group(0));
            }
            System.out.println(matchList);
        }
    
    }
    
    
    
    点赞 评论 复制链接分享
  • u011845742 东东东雷 6年前

    楼上说的很对哦。
    看代码:
    public static void main(String[] args) {
    String str = "fdjfk23jkj0 ,. djfk !s2SJDKd djfk 232 : ! d .. s";
    Pattern pattern = Pattern.compile("([a-z\d]+)", Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(str);
    ArrayList list = new ArrayList();
    while(matcher.find()){
    String result = matcher.group(1);
    list.add(result);
    }
    System.out.println(list);
    }

    点赞 评论 复制链接分享
  • showbo GoCityPass新加坡曼谷通票 6年前
     Pattern pattern = Pattern.compile("[a-z\\d]+",Pattern.CASE_INSENSITIVE);
    
    点赞 评论 复制链接分享

相关推荐