正規表示式排除特定字串

2022-02-07 07:15:18 字數 1307 閱讀 6113

額外知識一:asp.net正則獲取鏈結

regex reg = new regex("

href=\"([^\"]+)\"[^>]*>([^<]+)

", regexoptions.ignorecase);

matchcollection matches =reg.matches(html);

foreach (match match in

matches)

}

額外知識點二:asp.net正則過濾

html = regex.replace(html, "

^\\s*

", string.empty, regexoptions.compiled |regexoptions.multiline);//過濾空格

html = regex.replace(html, "

\\r\\n

", string.empty, regexoptions.compiled | regexoptions.multiline);//過濾換行

1.例子,查詢不以baidu開頭的字串。

正則:^(?!baidu).*$  匹配結果就是第2行,也就是第1行被排除了

這裡使用了零寬度斷言(?!exp),注意,我們有乙個向前查詢的語法(也叫順序環視)  (?=exp)

(?=exp) 會查詢exp之前的【位置】如果將等號換成感嘆號,就變成了否定語義,也就是說查詢的位置的後面不能是exp

一般情況下?!要與特定的錨點相結合,例如^行開頭或者$行結尾,那麼上面的例子的意思如下:

^(?!baidu).*$ 先匹配乙個行開頭的位置,並且要求接下來的位置的後面不是baidu這個字串。這樣由於第一行^之後的位置後面是baidu所以匹配失敗,被排除在外了。

2.例子,查詢不以com結尾的字串。

www.sina.com.cn

www.114369.cn

www.114345.cn

www.114380.com

www.i029.com

正則 ^.*?(?3.例子查詢不含有if的行

if (a>b)

printf("hello");

else if(a比比我之前寫的表示式

a((?以a開頭b結尾,不含virtual的字串

a((?以a開頭b結尾,不含virtual的字串

利用正規表示式排除特定字串

1.例子,查詢不以baidu開頭的字串。正則 baidu 匹配結果就是第2行,也就是第1行被排除了 這裡使用了零寬度斷言 exp 注意,我們有乙個向前查詢的語法 也叫順序環視 exp exp 會查詢exp之前的 位置 如果將等號換成感嘆號,就變成了否定語義,也就是說查詢的位置的後面不能是exp 一般...

利用正規表示式排除特定字串

查詢不以baidu開頭的字串 正則 baidu 匹配結果就是第2行,也就是第1行被排除了 這裡使用了零寬度斷言 exp 注意,我們有乙個向前查詢的語法 也叫順序環視 exp exp 會查詢exp之前的 位置 如果將等號換成感嘆號,就變成了否定語義,也就是說查詢的位置的後面不能是exp 一般情況下?要...

正規表示式 排除型字元組

1.5 排除型字元組 在方括號 中列出希望匹配的所有字元,這種字元組叫做 普通字元組 它的確非常方便。不過,也有些問題是普通字元組不能解決的。給定乙個由兩個字元構成的字串str,要判斷這兩個字元是否都是數字字元,可以用 0 9 0 9 來匹配。但是,如果要求判斷的是這樣的字串 第乙個字元不是數字字元...