java中正则表达式实例详解

Java中正则表达式运用实例(参看java中正则表达式运用详解):

测试代码

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Java基于正则表达式实现的替换匹配文本功能【经典实例】

    本文实例讲述了Java基于正则表达式实现的替换匹配文本功能.分享给大家供大家参考,具体如下: package replaceDemo; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank * 替换匹配的文本 */ public class ReplaceDemo { public static void main(String[] args) { // 创建一个正则表达式模式

  • Java基于正则表达式获取指定HTML标签指定属性值的方法

    本文实例讲述了Java基于正则表达式获取指定HTML标签指定属性值的方法.分享给大家供大家参考,具体如下: 有时可能会有这样的需求,从HTML页面获取指定标签的指定属性值,可以通过第三方库解析来获取,但是这样相对比较麻烦! 如果使用正则表达式,那么就变得简单了.代码如下: package com.mmq.regex; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import

  • java使用正则表达式查找包含的字符串示例

    本文实例讲述了java使用正则表达式查找包含的字符串.分享给大家供大家参考,具体如下: Hello.java: package hello; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Hello { public static void main(String[] args) { String re = "\\[([^\\]]+)\\]"; String str = &quo

  • Java基于正则表达式实现查找匹配的文本功能【经典实例】

    本文实例讲述了Java基于正则表达式实现查找匹配的文本功能.分享给大家供大家参考,具体如下: REMatch.java: package reMatch; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank */ public class REMatch { public static void main(String[] args) { String patt = "Q[^

  • Java中正则表达式去除html标签

    Java中正则表达式去除html的标签,主要目的更精确的显示内容,比如前一段时间在做类似于博客中发布文章功能,当编辑器中输入内容后会将样式标签也传入后台并且保存数据库,但是在显示摘要的时候,比如显示正文的前50字作为摘要,那么这时需要去除所有html标签,然后在截取50字,所以就通过了Java正则表达式实现了如下方法,代码如下: 注:这是Java正则表达式去除html标签方法. private static final String regEx_script = "<script[^>

  • Java正则表达式判断字符串中是否包含中文示例

    前言 在日常开发编程中,我们有时从用户那里得到一些输入信息,对于特定应用,部分信息不允许包含中文字符,那如何检测信息字符串中是否包含中文字符呢? 方法有很多,这篇文章就介绍一下如何通过正则表达式来实现这个需求. 示例代码 package cn.sunzn.demo; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Demo { public static void main(String[]

  • Java正则表达式之split()方法实例详解

    本文实例讲述了Java正则表达式之split()方法.分享给大家供大家参考,具体如下: 1.方法介绍 (1)public String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串 (2)public String[] split(String regex,int limit) 根据匹配给定的正则表达式来拆分此字符串 2.方法实例 /** * @Title:Split.java * @Package:com.you.data * @Description:Ja

  • Java正则表达式实现在文本中匹配查找换行符的方法【经典实例】

    本文实例讲述了Java正则表达式实现在文本中匹配查找换行符的方法.分享给大家供大家参考,具体如下: 默认情况下,正则表达式 ^ 和 $ 忽略行结束符,仅分别与整个输入序列的开头和结尾匹配.如果激活 MULTILINE 模式,则 ^ 在输入的开头和行结束符之后(输入的结尾)才发生匹配.处于 MULTILINE 模式中时,$ 仅在行结束符之前或输入序列的结尾处匹配. NLMatch.java: package nlMatch; import java.util.regex.Pattern; /**

  • Java正则表达式处理特殊字符转义的方法

    正则需要转义字符 '$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|' 异常现象: java.util.regex.PatternSyntaxException: Dangling meta. character '*' near index 0 解决方法 对特殊字符加\\转义即可. 注意:虽然使用[]在部分条件下也可以,但是在对于(.[.{范围边界开始符不匹配的情况下会报如下: 异常现象 java.util.

  • java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】

    本文实例讲述了java正则表达式实现提取需要的字符并放入数组.分享给大家供大家参考,具体如下: 这里演示Java正则表达式提取需要的字符并放入数组,即ArrayList数组去重复功能. 具体代码如下: package com.test.tool; import java.util.ArrayList; import java.util.HashSet; import java.util.regex.*; public class MatchTest { public static void ma

随机推荐