【例二】在滿足匹配時,匹配盡可能長的字串,預設情況下,採用匹配優先。
string pattern1 = @"a.*c"; // greedy match
regex regex = new regex(pattern1);
regex.match("abcabc"); // return "abcabc"
【例三】使用忽略匹配優先
string pattern1 = @"a.*?c"; // non-greedy match
regex regex = new regex(pattern1);
regex.match("abcabc"); // return "abc"
【例三】使用忽略匹配優先及環視
console.writeline(res);//列印billes kites iskluoioasdasdfuo
///下面使用環視就可以不使用忽略匹配優先了//
source = "uoioasdasdfuocs";
reg = new regex("((?!).)*", regexoptions.ignorecase);//環視,不出現
res = reg.match(source).value;
console.writeline(res);//列印uoioasdasdf
reg = new regex("((?!).)*", regexoptions.ignorecase);//環視,不出現及
res = reg.match(source).value;
console.writeline(res);//列印asdf
在輸入字串中搜尋正規表示式的所有匹配項並返回所有匹配。
過載列表:
【例一】
mc = regex.matches(affiliationstring, ".*?",
regexoptions.singleline); // affiliationstring為查詢的字串
string affiliation = "";
foreach (match item in mc)
}指示 regex 建構函式中指定的正規表示式在指定的輸入字串中是否找到了匹配項。
【例一】
regex reg = new regex("^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$");//**格式
if (!reg.ismatch(this.txturl.text.trim(), 0))
分組注意事項:分組
0是整個正規表示式匹配到的結果,然後依次是未命名分組。
例如:(\w)(?\d+)(\s+)
1 3 2
特殊的replacement處理
regex.replace方法和match.result方法都可以接收能夠進行特殊處理的replacement字串。下面的字串行會被匹配到的文字所替換:
字串行 替換內容
$& 整個表示式匹配的文字,相當於$0
$1 $2 對應編號的捕獲分組所匹配的文字
$ 對應命名捕獲分組匹配的文字
$『 目標字串中匹配文字之前的文字
$' 目標字串中匹配文字之後的文字
$$ 單個$字元($1的顯示為$$!)
$_ 正則原始目標字串的副本
$+ .net中表示最後的那個捕獲型括號匹配的文字
【示例】
if (tmp.success)//匹配成功
正規表示式 正則入門
先從乙個例子開始正規表示式。書寫乙個匹配手機號的正規表示式,為了方便討論,假定手機號是1開頭,第二位只能是3 5 8中的其中乙個,總共11位的數字,形如13 匹配手機號的正規表示式為 1 358 d 下面介紹此正規表示式中的各個符號的含義。表示字串的開頭,後面緊接著1,表示匹配的字串要以 1 開頭。...
正規表示式入門
對於文字字元,有11個字元被保留作特殊用途。他們是 這些特殊字元也被稱作元字元 不可顯示字元 可以使用特殊字串行來代表某些不可顯示字元 代表tab 0x09 代表回車符 0x0d 代表換行符 0x0a 字符集 字符集是由一對方括號 括起來的字元集合。使用字符集,你可以告訴正規表示式引擎僅僅匹配多個字...
正規表示式入門
老師說過 正規表示式就是用字串讀取字串!學習正規表示式的最好方法是從例子開始,理解例子之後再自己對例子進行修改,實驗。下面給出了不少簡單的例子,並對它們作了詳細的說明。假設你在一篇英文 裡查詢hi,你可以使用正規表示式hi。這幾乎是最簡單的正規表示式了,它可以精確匹配這樣的字串 由兩個字元組成,前乙...