正則表達式基礎
正則表達式語法(1)
普通字符:字母,數字,漢子,下劃線以及沒有特殊定義的標點符號都是“普通字符”。表達式中的普通字符,在匹配一個字符串的時候,匹配與之相同的一個字符
簡單的轉義字符:
\n :代表換行符
\t :代表制表符
\\ :代表\本身
\^ ...... :代表匹配這字符本身
正則表達式語法(2)
標准字符集合:
能夠與多種字符匹配的表達式
注意區分大小寫,大寫是相反的意思
\d :任意一個數字,0~9中的任意一個
\w:任意一個字母或者下劃線或者漢字,也就是A~Z,a~z,0~9中的任意一個
\s :包括空格,制表符,換行符等空白符中的任意一個。
. :小數點可以匹配任意一個字符
正則表達式語法(3)
自定義字符集合:
[ ]方括號匹配方式,能夠匹配方括號中任意一個字符
[ab5@]: 匹配方括號中的任意一個字符
[^abc]: 匹配除了abc以外的任意一個字符
[f-k]: 匹配“f”-“k”之間的任意一個字符
[^A-F0-3]: 匹配非A-F和非0-3的任意一個字符
正則表達式語法(4)
修飾匹配次數的特殊符號
{n}: 表達式重復n次
{m,n}: 表達式至少重復m次,最多重復n次
{m,}: 表達式至少重復m次
?: 匹配表達式0次或者1次,相當於{0,1}
+ : 表達式至少出現1次,相當於{1,}
* : 表達式不出現或者出現任意次,相當於{0,}
匹配次數中的貪婪模式,(匹配字符愈多愈好,默認)
匹配次數中的非貪婪模式(匹配字符越少越好,修飾匹配次數的特殊符號後再加上一個“?“號)。例子:\d{2,4}?,這樣就將模式改為非貪婪
正則表達式語法(5)
字符邊界(本組標記匹配的不是字符而是位置,符合某種條件的位置)
^: 與字符串開始的位置匹配(以一行來算)
$: 與字符串結束的地方匹配
\b: 匹配單詞邊界 //比如boy\b 則在boy右邊不是邊界的不匹配
在Java中使用正則表達式及常用函數
public class TestRegex {
public static void main(String []args)
{
//Pattern p = Pattern.compile("^\\d{4}"); //在java中的反斜槓要用兩個前面一個轉義,因為\d中的\做反義用
Pattern p = Pattern.compile("(\\d{4})([a-z]{2})");
Matcher m = p.matcher("asdfsadfsafd2342314asdfsadf2342asdfsaf");
System.out.println(m.matches()); //匹配整個目標字符串
System.out.println(m.find()); //查找字符串
List<String> list = new ArrayList<String>(); //用來存儲找到的group
while(m.find()) //m.find()找到一個後就去找下一個了
{
System.out.println(m.group()); //group(),group(0)的作用是一樣的
System.out.println(m.group(0));
System.out.println(m.group(1));
System.out.println(m.group(2)); //如果寫3的話會超出范圍
list.add(m.group());
}
String []str = "aa33fdf55cc".split("\\d{2}"); //按照兩個整數來切分
String str2 ="asd2dsfdfds".replaceAll("\\ds", "**"); //將ds替換掉,生成新的字符串,因為前面是常量不可變
System.out.println("asdfsdf".matches("\\w+")); //匹配字符串
}
}
Linux正則表達式特性及BRE與ERE的區別 http://www.linuxidc.com/Linux/2014-03/99152.htm
grep使用簡明及正則表達式 http://www.linuxidc.com/Linux/2013-08/88534.htm
正則表達式的用法 http://www.linuxidc.com/Linux/2013-03/81897.htm
正則表達式之零寬斷言 http://www.linuxidc.com/Linux/2013-03/81897.htm
Linux中正則表達式與文件格式化處理命令(awk/grep/sed) http://www.linuxidc.com/Linux/2013-03/81018.htm
基礎正則表達式 http://www.linuxidc.com/Linux/2014-09/106296.htm
常用正則表達式整理 http://www.linuxidc.com/Linux/2014-10/108076.htm