一些用到過的正則表達式
1、去除xml或者類似文件的頭部信息
string text = File.ReadAllText("E:\\AA.xml").Replace("\r\n",""); text = Regex.Replace(text, @"<!-- *.* -->","", RegexOptions.IgnoreCase);
功能:
將AA.xml文件中的回車、換行替換為“”,將<!-- *.* -->替換為“”。
IgnoreCase(忽略大小寫)匹配時不區分大小寫。
ReadAllText打開一個文本文件,讀取文件的所有行,然後關閉該文件。
將AA.xml文件中的回車、換行替換為“”,將<!-- *.* -->替換為“”。
IgnoreCase(忽略大小寫)匹配時不區分大小寫。
ReadAllText打開一個文本文件,讀取文件的所有行,然後關閉該文件。
public static string ReadAllText(string path) path 類型:System.String 要打開以進行讀取的文件。 返回值 類型:System.String 包含文件所有行的字符串。 public static string Replace ( string input, // 要修改的字符串 string pattern, //要匹配的正則表達式模式 string replacement, //替換字符串 RegexOptions options //RegexOption 枚舉值的按位“或”組合 ) // 返回已修改的字符串
如果想看Replace函數詳細代碼信息的話,用 Reflector或者ILSpy 打開System.dll ,在 System.Text.RegularExpressions 命名空間中找到 Regex 類,即可。
2、驗證身份證信息
string reg = "^[0-9]{15,16}$";
小注:
^ 匹配字符串的開始
[…] 匹配[]內所列出的所有字符
{n,m} 匹配前麵的字符n到m次
$ 匹配字符串的結束
[…] 匹配[]內所列出的所有字符
{n,m} 匹配前麵的字符n到m次
$ 匹配字符串的結束
3、驗證主頁,網址
Regex.IsMatch(str, @"^(https://){0,1}www.(\w)+.(com|net|org|com.cn|net.cn|org.cn|gov.cn|info|biz|tv|cc|cn)$");
小注:
其中str為待驗證的主頁或者網址
^ 匹配字符串的開始
( 和 ) 標記一個子表達式的開始和結束位置。子表達式可以獲取供以後使用。要匹配這些字符,請使用 \( 和 \)。
{n,m} 匹配前麵的字符n到m次
/w 匹配字母或數字或下劃線或漢字
+ 重複一次或更多次
() 表示操作的範圍和優先度, 如 "gr(a|e)y" 可以匹配 gray 或 grey.
| 表示選擇符號,"gray|grey"可匹配 gray 或 grey.
$ 匹配字符串的結束
( 和 ) 標記一個子表達式的開始和結束位置。子表達式可以獲取供以後使用。要匹配這些字符,請使用 \( 和 \)。
{n,m} 匹配前麵的字符n到m次
/w 匹配字母或數字或下劃線或漢字
+ 重複一次或更多次
() 表示操作的範圍和優先度, 如 "gr(a|e)y" 可以匹配 gray 或 grey.
| 表示選擇符號,"gray|grey"可匹配 gray 或 grey.
$ 匹配字符串的結束
4、檢查文本或者字符串首位是否是數字
//匹配的正則表達式,去掉@不影響效果 Regex r = new Regex(@"^[0-9]");
小注:
像[0-9] 代表的含意與/d 就是完全一致的
5、驗證郵編
string reg = "^[0-9]{6}$";
小注:
{n} 匹配前麵的字符n次
6、驗證郵箱
string reg = "^[a-zA-Z][a-zA-Z0-9._]*@[a-zA-Z0-9.]+[.]+[a-zA-Z0-9]+$";
小注:
^ 匹配字符串的開始
“@”表示,跟在它後麵的字符串是個“逐字字符串”,不是很好理解,舉個例子,以下兩個聲明是等效的:
. 匹配除換行符以外的任意字符
+ 重複一次或更多次
$ 匹配字符串的結束
7、匹配整數
“@”表示,跟在它後麵的字符串是個“逐字字符串”,不是很好理解,舉個例子,以下兩個聲明是等效的:
string x="D:\\My Huang\\My Doc"; string y = @"D:\My Huang\My Doc";事實上,如果按如下聲明,C#將會報錯,因為“\”在C#中用於實現轉義,如“\n”換行:
string x = "D:\My Huang\My Doc";* 表示前麵的字符要出現0次,1次,乃至多次,上麵沒有封頂, 下麵保底是0次,可以不出現。
. 匹配除換行符以外的任意字符
+ 重複一次或更多次
$ 匹配字符串的結束
System.Text.RegularExpressions.Regex.IsMatch(str, @"^-?\d+$")小注:
其中str為待驗證的string類型變量
^ 匹配字符串的開始
? 重複零次或一次
-? 重複零次或一次-
/d 匹配數字
+ 重複一次或更多次
\d+ 重複一次或更多次數字
$ 匹配字符串的結束
? 重複零次或一次
-? 重複零次或一次-
/d 匹配數字
+ 重複一次或更多次
\d+ 重複一次或更多次數字
$ 匹配字符串的結束
或者:
^-?[1-9]\d*$
9、 取出兩個__之間的部分
result = Regex.Match(abstractObjectEntity.Name, "(?<=_).*?(?=_)").Value;
參考:點擊打開鏈接
10、最後更新:2017-04-03 12:54:23