本文实例讲述了JS和C#实现的两个正则替换功能。分享给大家供大家参考,具体如下:
应用实例1:
待处理字符串:str="display=test name=mu display=temp"
要求:把display=后的值都改成localhost
JS处理方法:
1
|
str.replace(/display=\w*/g, "display=localhost" );
|
C#处理方法:
1
2
|
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处理方法:
1
2
3
4
5
|
var reg = /(display=)(\w*)/g;
var result;
while ((result= reg.exec(str))!= null ) {
str= str.replace(result[0], result[1] + "localhost" + result[2]);
}
|
C#处理方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/// <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、 当正则表达式没有/g时,两者返回第一个符合的字符串或字符串组(如果正则中有分组的话)
2、 当正则表达式有/g时,match返回全部符合的字符串组且忽略分组,exec则返回第一个字符串或字符串组
希望本文所述对大家正则表达式学习有所帮助。