从格式字符串中提取argumens值

时间:2014-07-07 22:25:32

标签: c# regex format

我有一个字符串,实际上是一种格式,例如"m_{0}A1_{1}Tmp" 给定这样的格式字符串和数据我需要提取参数的值,即{0}{1} 按照上面的示例,如果数据是m_TomerA1_DbTmp,我应该提取第一个参数是Tomer,第二个参数是Db 很高兴听到我该怎么做? 我的直觉说我需要正则表达式......

1 个答案:

答案 0 :(得分:1)

使用此正则表达式并检索第1组和第2组匹配:

m_(.*?)A1_(.*?)Tmp

在演示中,查看右侧捕获的组。

在C#中:

var myRegex = new Regex("m_(.*?)A1_(.*?)Tmp");
Match theMatch = myRegex.Match(yourString);
String token1 = theMatch.Groups[1].Value;
String token2 = theMatch.Groups[2].Value;

<强>解释

  • m_匹配文字字符
  • (.*?)捕获到第1组并懒惰地匹配所有内容......
  • A1_字面意思
  • (.*?)捕获到第2组并且懒洋洋地匹配所有内容......
  • Tmp字面意思
  • 使用theMatch.Groups[i].Value
  • 检索组i