具有相同模式的字符串,使用正则表达式组的提取和替换的案例

对具有相同模式的字符串内不同的组的提取怎样做呢,我是这样做的:

提取字符串:sourcetext:{name:john,data:[1,2,3],name:marry,data:[4,5,6]}

代码:

Regex reg = new Regex(@"data:\[([\w|.|,]{1,})\]", RegexOptions.IgnoreCase);
MatchCollection matches = reg.Matches(series);
foreach (Match match in matches)
{

   GroupCollection groups = match.Groups;
   for (int j = 0; j < groups.Count; j++)
   {
     string weightjsonInKgMode = covertToKg(groups[j].Value.Replace("data:[", "").Replace("]", ""));
     string regModel = groups[j].Value;
     regModel = regModel.Replace("[", "\\[").Replace("]", "\\]");
     series = Regex.Replace(series, regModel, weightjsonInKgMode);
   }
}

结果:

series中的“1,2,3”,和“4,5,6”,将分别被weightjsonInKgMode字符串“0.001,0.002,0.003”和“0.004,0.0045,0.0046”所代替

(参考:http://blog.csdn.net/goodshot/article/details/6676349  
http://blog.csdn.net/goodshot/article/details/44935521)

时间: 2024-09-29 11:06:16

具有相同模式的字符串,使用正则表达式组的提取和替换的案例的相关文章

正则表达式match和group的区别 具有相同模式的字符串使用组的提取案例

Match类 示例:查找出字符串中包含的url string text = "FirstUrl: http://www.sohu.com ,SecondUrl: http://www.baidu.com "; string pattern = @"\b(\S+)://(\S+)\b"; //匹配URL的模式 MatchCollection mc = Regex.Matches(text, pattern); //满足pattern的匹配集合 Console.Writ

正则表达式用来根据某种匹配模式寻找字符串中的某些单词。

我们可以把这个正则表达式分成几段: / 是这个正则表达式的头部 the 是我们想要匹配的模式 / 是这个正则表达式的尾部 g 代表着 global(全局),意味着返回所有的匹配而不仅仅是第一个. i 代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写. 例子:用全局.忽略大小写的模式选取字符串 testString中所有的单词 and

C#语言之字符串和正则表达式

本文将完成以下两个目标: 一.创建字符串: 二.正则表达式: 首先,我先来介绍一下System.String类: System.String是一个类,专门用于存储字符串,允许对字符串进行许多操作. 使用运算符重载可以连接字符串: string str1 = "hello"; //return "hello" str1 +=",C#"; //return "hello,C#" string str2 = str1+"!

第5章 字符串及正则表达式

第5章 字符串及正则表达式 5.1 字符串常用操作 在Python开发过程中,为了实现某项功能,经常需要对某些字符串进行特殊处理,如拼接字符串.截取字符串.格式化字符串等.下面将对Python中常用的字符串操作方法进行介绍. 5.1.1 拼接字符串 使用“+” 运算符可完成对多个字符串的拼接,“+” 运算符可以连接多个字符串并产生一个字符串对象. 例如,定义两个字符串,一个保存英文版的名言,另一个用于保存中文版的名言,然后使用“+” 运算符连接,代码如下: mot_en = 'Remembran

groovy regex groups(groovy正则表达式组)

先看一个java正则表达式的例子. import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestMatch { public static void main(String[] args) { Pattern pattern = Pattern.compile("G.*"); Matcher matcher = pattern.matcher("Groovy");

R5&mdash;字符串处理/正则表达式

R通常被用来进行数值计算比较多,字符串处理相对较少,而且关于字符串的函数也不多,用得多的就是substr.strsplit.paste.regexpr这几个了.实际上R关于字符串处理的功能是非常强大的,因为它甚至可以直接使用Perl的正则表达式,这也是R的一个理念,作为语言就把向量计算做到极致,作为环境,就在各领域都集成最好的.R中有grep系列的函数,可以用最强大的方式处理字符串的所有问题. grep的全称是global search regular expression and print

【转】字符串和正则表达式

System.String是一个功能非常强大且用途非常广泛的基类,但它不是.NET中唯一与字符串相关的类,特别是System.Text和System.Text.RegularExpressions命名空间中的类.本文主要介绍内容: 1.创建字符串 2.格式化表达式 3.正则表达式一.System.String类 System.String是一个类,专门用于存储字符串,允许对字符串进行许多操作. 例如: string messsage1 = "Hello"; // return &quo

(正则表达式)linux shell 字符串操作(长度,查找,替换,匹配)详解

在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} 如果var没有被声明, 或者其值为空, 那

Ruby中字符串与正则表达式的问题

Ruby的正则表达式为Regexp类的对象 主要的元语言字符 記号 意味 例 説明 ^ 行頭 /^abc/ abcで始まる行 $ 行末 /abc$/ abcで終わる行 . 任意の1文字 /a.b/ aとbの間に1文字 [...] []内のいずれか1文字 /[A-Za-z]/ 英字 [^...] []内に含まれない1文字 /[^0-9]/ 数字以外 * 0回以上の繰り返し /a.*/ aまたはaで始まる + 1回以上の繰り返し /a+/ 1回以上のaの繰り返し ? 0回または1回 /aa?/ aま