java中正则表达式运用实例(用String类的matches方法演示)

测试代码 

    package test;  
    /**  
     * 在String的matches()方法,split()方法中使用正则表达式.  
     * @author fhd001  
     */  
    public class RegexTest {  
      
        public static void main(String[] args) {  
      
            /*  
             * 普通字符  
             */  
            String str1 = "abc45abc345";  
            String[]arr1 = str1.split("abc");  
            for (String string : arr1) {  
                System.out.print(string+"-->");  
            }  
            System.out.println();  
              
              
            /*  
             * 简单的转义字符  
             * 在java中转义字符时一定要用双反斜线,两个斜线转义成一个斜线,  
             * 在用这个斜线字符转义那些特殊字符.  
             */  
            String str2 = "^$()[]{}.?+*|";  
            boolean flag = str2.matches("//^//$//(//)//[//]//{//}//.//?//+//*//|");  
            System.out.println(flag);  
              
              
            /*  
             * 转义字符 /Q.../E.  
             */  
            String str3 = "^$()[]{}.?+*|99999";  
            boolean flag2 = str3.matches("//Q^$()[]{}.?+*|//E//d{5}");  
            System.out.println(flag2);  
              
              
            /*  
             * 字符集合  
             */  
            String str4 = "dfddri334";  
            boolean flag4 = str4.matches(".+");  
            System.out.println(flag4);  
              
            String str5 = "#$%^*())%";  
            boolean flag5 = str5.matches("//W{9}");  
            System.out.println(flag5);  
              
            String str6 = "4gffmdkekrhhr";  
            boolean flag6 = str6.matches("//w+");  
            System.out.println(flag6);  
              
            String str7 = "fjfdke    eett ";  
            boolean flag7 = str7.matches("//w+//s+//w{4}//s?");  
            System.out.println(flag7);  
              
            String str8 = "   erefff    ";  
            boolean flag8 = str8.matches("//s+//S+//s+");  
            System.out.println(flag8);  
              
            String str9 = "456776888";  
            boolean flag9 = str9.matches("//d+");  
            System.out.println(flag9);  
              
              
            String str10 = "rtydfgrgwvr  ";  
            boolean flag10 = str10.matches("//D+");  
            System.out.println(flag10);  
              
              
            /*  
             * 自定义字符集合 [ ]  
             */  
            String str11 = "fdfeetg  34566";  
            boolean flag11 = str11.matches("[fdetg]+//s+[3-6]+");  
            System.out.println(flag11);  
              
              
            String str12 = "rtyuie   5768";  
            boolean flag12 = str12.matches("[^abcdf]+//s+[^1234]+");  
            System.out.println(flag12);  
              
              
            /*  
             * 匹配次数限定符  
             */  
              
            //贪婪模式  
            String str13 = "ytreggcv454444444333";  
            boolean flag13 = str13.matches("//w{20}");  
            System.out.println(flag13);  
              
            boolean flag14 = str13.matches("//w{10,21}");  
            System.out.println(flag14);  
              
            boolean flag15 = str13.matches("//w{18,}");  
            System.out.println(flag15);  
              
            String str14 = "4";  
            boolean flag16 = str14.matches("//d?");  
            System.out.println(flag16);  
              
            String str15 = "ddcvgt";  
            boolean flag17 = str15.matches("//D+//d?");  
            System.out.println(flag17);  
              
            String str16 = "e33tf44t44t";  
            boolean flag18 = str16.matches("//w+//W*");  
            System.out.println(flag18);  
              
            //勉强模式(只举一例)  
            String str17 = "34567ghjkkld";  
            boolean flag19 = str17.matches("//d{2,7}?//w{8,11}");  
            System.out.println(flag19);  
              
            //占有模式(只举一例)  
            String str18 = "22222ddddd";  
            boolean flag20 = str18.matches("//d{2,5}+//w{6}");  
            System.out.println(flag20);  
              
            /*  
             * 字符边界  
             */  
            String str19 = "a444545rot44tm";  
            boolean flag21 = str19.matches("^a//w+m$");  
            System.out.println(flag21);  
              
              
            /*  
             * 选择表达式 xxx | xxx  
             */  
            String str20 = "abc123abc";  
            boolean flag22 = str20.matches("(abc|123){3}");  
            System.out.println(flag22);  
              
              
            /*  
             * 分组 ( ).  
             * 以上修饰符都是针对一个字符进行修饰.如果要对一组字符进行  
             * 修饰就要用到()  
             */  
            String str21 = "123qwe123qwe";  
            boolean flag23 = str21.matches("(123qwe){2}");  
            System.out.println(flag23);  
              
              
            /*  
             * []中的交集与并集  
             */  
            String str22 = "abcdefgh1234567";  
            boolean flag24 = str22.matches("[a-z1-9]+");        //并集  
            System.out.println(flag24);  
              
            boolean flag25 = str22.matches("[a-z1-9&&[a-h1-7]]+"); //交集  
            System.out.println(flag25);  
        }  
    }  
结果代码 

    -->45-->345-->  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    false  
    true  
    true  
    true  
    true  
    true  



FROM:

http://blog.csdn.net/vrix/article/details/5713420

http://www.cnblogs.com/elleniou/archive/2012/07/31/2617312.html


### 回答1: Java可以使用正则表达式来判断字符串是否包含文。下面是一个示例: ``` String regex = "[\u4e00-\u9fa5]"; String str = "这是一个文字符串"; // 判断字符串是否包含文 if (str.matches(".*" + regex + ".*")) { System.out.println("字符串包含文"); } else { System.out.println("字符串不包含文"); } ``` 在上面的例子,regex变量定义了一个范围为[\u4e00-\u9fa5]的正则表达式,表示匹配所有文字符。然后使用str.matches(".*" + regex + ".*")方法来判断字符串是否包含文。 ### 回答2: 在Java,可以使用正则表达式来判断文字符。具体的正则表达式可以为"\u4e00-\u9fa5",其"\u4e00"表示文字符的起始unicode编码,"\u9fa5"表示文字符的结束unicode编码。 使用正则表达式判断文的步骤如下: 1. 导入java.util.regex包; 2. 使用Pattern的compile方法编译正则表达式,其参数为"\u4e00-\u9fa5"; 3. 创建Matcher实例,将待判断的字符串作为参数传入; 4. 使用find方法进行匹配查找; 5. 若find方法返回true,则表示字符串包含文字符;否则,不包含文字符。 示例代码如下: ``` import java.util.regex.Matcher; import java.util.regex.Pattern; public class ChineseCharacterChecker { public static boolean containsChineseCharacter(String str) { String regex = "\u4e00-\u9fa5"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(str); return matcher.find(); } public static void main(String[] args) { String str1 = "Hello World"; String str2 = "你好,世界"; System.out.println(containsChineseCharacter(str1)); // false System.out.println(containsChineseCharacter(str2)); // true } } ``` 以上代码的containsChineseCharacter方法会返回一个布尔值,指示字符串是否包含文字符。在示例,str1不存在文字符,所以返回false;而str2存在文字符,所以返回true。 ### 回答3: 在Java,可以使用正则表达式判断文。可以使用Unicode编码来表示文字符的范围,即[\u4E00-\u9FFF]。这个范围包括了常见的汉字和一些少用的汉字。 下面是一个示例代码,展示了如何使用正则表达式判断一个字符串是否包含文字符: ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String str = "Hello, 世界!"; Pattern pattern = Pattern.compile("[\u4E00-\u9FFF]"); // 匹配文字符的正则表达式 Matcher matcher = pattern.matcher(str); if (matcher.find()) { System.out.println("字符串包含文字符"); } else { System.out.println("字符串不包含文字符"); } } } ``` 运行上述代码,输出结果为"字符串包含文字符",因为字符串"Hello, 世界!"包含了文字符"世界"。 通过使用正则表达式,我们可以方便地判断一个字符串是否包含文字符。在上述示例代码,使用了Unicode编码来表示文字符的范围,这可以确保我们不会将其他字符误判为文字符。如果有需要,我们还可以根据具体需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值