這篇文章主要介紹了JS和C#實現的兩個正則替換功能,結合具體執行個體形式分析了js與C#進行字串正則替換的相關實現方法與注意事項,需要的朋友可以參考下
本文執行個體講述了JS和C#實現的兩個正則替換功能。分享給大家供大家參考,具體如下:
應用執行個體1:
待處理字串:str="display=test name=mu display=temp"
要求:把display=後的值都改成localhost
JS處理方法:
str.replace(/display=\w*/g,"display=localhost");
C#處理方法:
Regex reg=new Regex(@"display=\w*");str=reg.Replace(str,"display=localhost");
應用執行個體2:
待處理字串:str="display=test name=mu display=temp"
要求:字串變為display=localhosttest name=mu display=localhosttemp
JS處理方法:
var reg = /(display=)(\w*)/g;var result;while ((result= reg.exec(str))!=null) { str= str.replace(result[0], result[1] + "localhost" + result[2]);}
C#處理方法:
/// <summary>/// 定義處理方法/// </summary>/// <param name="match">符合的字串</param>/// <returns></returns>private string Evaluator(Match match){ //(display=)(\w*) Groups按尋找到的字串再根據分組進行分組 //第0組為整個符合的字串,後面的組按括弧順序排 string str =match.Groups[1].Value+"localhost"+ match.Groups[2].Value; return str;}Regex regex = new Regex(@"(display=)(\w*)");string result = regex.Replace(str, Evaluator);
最後還有一個關於js的正則的小總結:
字串match
和正則對象exec
的區別
1、 當Regex沒有/g時,兩者返回第一個符合的字串或字串組(如果正則中有分組的話)
2、 當Regex有/g時,match返回全部符合的字串組且忽略分組,exec則返回第一個字串或字串組