程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 正則表達式總結

正則表達式總結

編輯:C#入門知識

正則表達式是對字符串進行操作;
1、.:匹配除了\n以外的任意單個字符;空格也行匹配,但注意一個點只匹配一個字符(漢字也算);
當出現有換行的時候:
  a)單行模式:.能匹配\n;
  vs裡的單行模式:Regex.Matches/Match("","",RegexOptions.Singleline);
  b)在換行處的正則表達式:[\s\S],即空格或非空格;
2、[]:匹配中括號中的任意一個字符,b[aeiou]g,b[a-zA-Z]g;但注意中括號也只匹配一個字符;
3、|:豎線前面的或豎線後面的
z|food:z或者food;
(z|f)ood:zood或者food;
*:匹配0至多個在它之前的子表達式,和通配符*沒關系。例如正則表達式“zo*”(等同於z(o)*)能匹配 “z” 、“zo”以及 “zoo”;因此“.*”意味著能夠匹配任意字符串。"z(b|c)*"→zb、zbc、zcb、zccc、zbbbccc。"z(ab)*"能匹配z、zab、zabab(用括號改變優先級)。
+ :匹配前面的子表達式一次或多次,和*對比(0到多次)。例如正則表達式9+匹配9、99、999等。 “zo+”能匹配 “zo”以及 “zoo” ,不能匹配"z"。
? :匹配前面的子表達式零次或一次。例如,“do(es)?” 可以匹配 “do” 或 “does” 。一般用來匹配“可選部分”。(終止貪婪模式)
{n} :匹配確定的 n 次。“zo{2}”→zoo。例如,“e{2}” 不能匹配“bed”中的“e”,但是能匹配“seed”中的兩個“e”。 //seeeed,不可以。
{n,} :至少匹配n次。例如,“e{2,}”不能匹配“bed”中的“e”,但能匹配 “seeeeeeeed”中的所有“e”。

{n,m} :最少匹配 n 次且最多匹配 m 次。“e{1,3}”將匹配“seeeeeeeed”中的前三個“e”。 {2,5}//bed,seed,seeed;beeeeed錯誤。
限定符:限定前面的正則表達式出現的次數。
^(shift+6) :匹配一行的開始。例如正則表達式“^regex”能夠匹配字符串“regex我會用”的開始,但是不能匹配“我會用regex”。
^另外一種意思:非!([^0-9])在中括號中,表示非
$ :匹配行結束符。例如正則表達式“浮雲$” 能夠匹配字符串“一切都是浮雲”的末尾,但是不能匹配字符串“浮雲呀”

\d:代表一個數字,等同於[0-9]   <\\d>  →\d     
\D:代表非數字,等同於[^0-9]
\s:代表換行符、Tab制表符等空白字符 ,(空格、回車、制表符)
(.無法匹配\n)
\S:代表非空白字符(a0%$@@)。
\w:匹配字母或數字或下劃線或漢字,即能組成單詞的字符,除%&#@!$等字符。[a-zA-Z0-9_漢字]
\W:非\w ,等同於[^\w] %
d:digital;s:space、w:word。大寫就是“非”
 
.net中的正則表達式:
正則表達式(Regular Expression)的主要類:Regex
常用的3種情況:(C#語法)
判斷是否匹配:Regex.IsMatch(“字符串”,”正則表達式”);
字符串提取:Regex.Match(“字符串”,“要提取的字符串的正則表達式”);//只能提取一個(提取一次)
字符串提取(循環提取所有): Regex.Matches(),(可以提取所有匹配的字符串。)
字符串替換:Regex.Replace(“字符串”,”正則”,”替換內容”);

注意:兩個雙引號能轉義成一個雙引號;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved