在字符串中获取自定义标记的优雅方式

时间:2013-04-12 14:51:19

标签: c# .net regex string

这里有一些优雅的方式来获取和替换字符串中的自定义标签吗?

例如

"some long text [o:prop] and [u:date]"

结果数组:

  • “[o:prop]”
  • “[U:日期]”

由于

4 个答案:

答案 0 :(得分:2)

@"\[[a-z]:[a-z]{4}\]"

假定1个小写字符后跟冒号,后跟4个小写字符,所有字符都用方括号括起来。

答案 1 :(得分:1)

这总是有风险的,但你可以选择一些正则表达式:

"\\[(.*?)]"

使用全局修饰符

更安全:\\[(o:prop|u:date)]

答案 2 :(得分:1)

是。使用正则表达式。

http://www.regular-expressions.info/

读取。学习。应用

答案 3 :(得分:0)

尝试

var replacements = new Dictionary<string,string> {
    {"[o:prop]","FISH"},
      {"[u:date]","2013-04-12"}
};

var testString = "some long text [o:prop] and [u:date]";

var result= new Regex(@"\[[^[]*?]").Replace(
      testString,
      match => replacements.ContainsKey(match.Value) ? replacements[match.Value] : match.Value);