正则表达式表达字符串中出现‘张“或”涨“的情况,如:“张里”,“水涨了”  一串字符串中应包含“张”或“涨”一个字

解决方案 »

  1.   

    char[] chs = str.toCharArray();遍历这个 chs 找这两个字不就行了,没必要用正则表达式的。
      

  2.   

    实在需要,上网找个一汉字转unicode的软件转下~~~再用正则
      

  3.   

    就字符串中出现一个“张”或“涨”字的正则表达式是不是不容易写哇??高手们,咋没人写个呢???………………SOSOSOSOSOSOSOSOS
      

  4.   

    哎,两种方法都提供了,自己看吧
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test5 {
        
        public static void main(String[] args) {
            String[] strs = {
                    "中华人民共和国涨",
                    "中华人民共和国",
                    "中华人民张共和国"
                };
            Matcher matcher = Pattern.compile("(?=.*[张涨]).*").matcher("");
            for(int i = 0; i < strs.length; i++) {
                System.out.println(strs[i] + " --> " + matcher.reset(strs[i]).matches());
            }
            
            System.out.println();
            
            char[] chs = { '张', '涨' };
            for(int i = 0; i < strs.length; i++) {
                System.out.println(strs[i] + " --> " + isContainChar(strs[i], chs));
            }
        }
        
        public static boolean isContainChar(String str, char[] chars) {
            if(str == null || str.length() == 0) {
                return false;
            }
            if(chars == null || chars.length == 0) {
                return false;
            }
            char[] chs = str.toCharArray();
            for(int i = 0; i < chs.length; i++) {
                for(int j = 0; j < chars.length; j++) {
                    if(chs[i] == chars[j]) {
                        return true;
                    }
                }
            }
            return false;
        }
    }