歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

正則表達式基礎及Java使用

 

正則表達式基礎

 

正則表達式語法(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

Copyright © Linux教程網 All Rights Reserved