正则表达式学习笔记(附:Java版示例代码)

具体学习推荐:正则表达式30分钟入门教程

.            除换行符以外的任意字符
\w         word,正常字符,可以当做变量名的,字母、数字、下划线、汉字
\s          space,空白符
\d          digital,数字
\b          begin,单词的开始和结束
^            匹配字符串的开始(整个字符串)
$            匹配字符串的结束(整个字符串)
?           重复0次或1次
*            重复任意次
+            重复至少一次
{x}         重复x次
{x,}        重复至少x次
{x,y}     重复x到y次
\          转义
[xyz]      匹配x或y或z中的一个字符
[A-D1-3]  匹配ABCD123中的一个字符
匹配1|匹配2   分支条件,或,注意:和编程一样,从左到右,一旦匹配1满足,停止匹配
()                 分组,把括号里面的东西当做一个整体
\W \S \D \B   和对应的小写\w \s \d \b含义相反
[^abc]          匹配除abc以外的字符
\1                后向引用,重复搜索前面第1个分组匹配的文本。\b(\w+)\b\s+\1\b,匹配类似go go。
(?=exp)        零宽断言:断言自身出现的位置的后面能匹配表达式exp
(?<=exp)      零宽断言:断言自身出现的位置的前面能匹配表达式exp
(?!exp)         负向零宽断言:断言此位置的后面不能匹配表达式exp
(?<!exp)       零宽度负回顾后发断言来断言此位置的前面不能匹配表达式exp

*?                重复任意次,但尽可能少重复 ,即让字符数越少越好
+?               重复1次或更多次,但尽可能少重复,即让字符数越少越好
??                重复0次或1次,但尽可能少重复
{n,m}?        重复n到m次,但尽可能少重复
{n,}?           重复n次以上,但尽可能少重复

 

Java正则表达式示例代码:

 RegEx.java

/*
 * /*
 * RegEx
 * @author ChenMing
 * @version 2016-7-15
 */
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegEx {
    public static void main(String[] args) {
        /*//查找匹配     字符 Java里面\要用\\
        Pattern pattern = Pattern.compile("\\w+") ;
        Matcher matcher = pattern.matcher("xx") ;
        boolean b = matcher.matches() ; 
        System.out.println(b);*/
        
        /*//分割 按照空格和,分割
        Pattern pattern = Pattern.compile(" ,");
        String[] strs = pattern.split("Java Hello World  Java,Hello,,World|Sun");
        for (int i=0;i<strs.length;i++) {
            System.out.println(strs[i]);
        } */
        
        
        /*//文字替换
        Pattern pattern = Pattern.compile("替换文本");
        Matcher matcher = pattern.matcher("被替换文本 adad asdad ad 被替换文本da 被替换文本sd");
        System.out.println(matcher.replaceFirst("被替换文本 "));
        System.out.println(matcher.replaceAll("被替换文本 "));*/
        
        
        /*//去除html标记
        //Pattern.DOTALL 在这种模式下,表达式'.'可以匹配任意字符,包括表示一行的结束符。默认情况下,表达式'.'不匹配行的结束符。
        Pattern pattern = Pattern.compile("<.+?>", Pattern.DOTALL);
        Matcher matcher = pattern.matcher("<a href=\"index.html\">主页</a>");
        String string = matcher.replaceAll("");
        System.out.println(string);*/
    }
}

 

posted @ 2016-07-14 23:42  日月星陈  阅读(152)  评论(0编辑  收藏  举报