JS与C#正则表达式替换实现及match与exec区别详解

作者:桌面漫游

时间:2026-10-22

浏览:464

本文通过两个具体实例演示了JavaScript和C#中正则表达式的替换操作,分别展示了全局替换与带分组回调替换的实现方式。同时深入解析了JS中match与exec方法在有无全局标志/g时的行为差异,并提供了相关在线工具推荐,帮助开发者掌握正则处理技巧。

文章目录

正则替换功能示例

本文通过具体代码示例,详细解析了如何在JavaScript和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);

match与exec方法区别

最后还有一个关于js的正则的小总结:

字符串match和正则对象exec的区别

1、 当正则表达式没有/g时,两者返回第一个符合的字符串或字符串组(如果正则中有分组的话)

2、 当正则表达式有/g时,match返回全部符合的字符串组且忽略分组,exec则返回第一个字符串或字符串组

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具: http://tools.jb51.net/regex/javascript

正则表达式在线生成工具: http://tools.jb51.net/regex/create_reg

希望本文所述对大家正则表达式学习有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章