pattern 匹配 treat 處理
正則表達(dá)式就是匹配字符串
在編寫處理字符串的程序時(shí),經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具。換句話說,正則表達(dá)式就是記錄文本規(guī)則的代碼
正則表達(dá)式是對字符串操作的一種邏輯公式,用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)"規(guī)則字符串",這個(gè)"規(guī)則字符串"用來表達(dá)對字符串的一種過濾邏輯。
-在很多文本編輯器里,可以使用正則表達(dá)式進(jìn)行檢索,Xcode同樣支持正則表達(dá)式!
-幾乎所有的程序設(shè)計(jì)語言都支持正則表達(dá)式,例如:OC,java,c#,python,js等。
0>匹配
--------------------------------------------------------------------------------
(pattern)匹配pattern并獲取這一匹配,所獲取的匹配可以從產(chǎn)生的Matches集合得到
1>常用元字符
--------------------------------------------------------------------------------
.匹配除換行符以外的任意字符
\w匹配字母或數(shù)字或下劃線或漢字
\s匹配任意的空白符(空格、TAB\t、回車\r \n)
\d匹配數(shù)字
^匹配字符串的開始
$匹配字符串的結(jié)束
\b匹配單詞的開始或結(jié)束
2>常用反義符
--------------------------------------------------------------------------------
\W匹配任意不是字母,數(shù)字,下劃線,漢字的字符
\S匹配任意不是空白符的字符
\D匹配任意非數(shù)字的字符
\B匹配不是單詞開頭或結(jié)束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou這幾個(gè)字母以外的任意字符
3>集合
--------------------------------------------------------------------------------
[xyz]字符集合
[^xyz]負(fù)值字符集合
[a-z]字符范圍
[^a-z]負(fù)值字符范圍
4>常用限定符
--------------------------------------------------------------------------------
*重復(fù)零次或更多次
+重復(fù)一次或更多次
?重復(fù)零次或一次
{n}重復(fù)n次
{n,}重復(fù)n次或更多次
{n,m}重復(fù)n到m次
5>貪婪和懶惰
--------------------------------------------------------------------------------
*?重復(fù)任意次,但盡可能少重復(fù)
*+重復(fù)1次或更多次,但盡可能少重復(fù)
??重復(fù)0次或1次,但盡可能少重復(fù)
{n,m}?重復(fù)n到m次,但盡可能少重復(fù)
{n,}?重復(fù)n次以上,但盡可能少重復(fù)