歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 正則表達式基礎及Java使用

正則表達式基礎及Java使用

日期:2017/3/1 9:36:10   编辑:Linux編程

正則表達式基礎

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