无法在String Regexp中获取数据

时间:2016-03-15 10:53:31

标签: c# regex

尝试在|[ID:X] text|中获取X.

但我不能做正确的模式。

X可以是Num和Word。

string pattern = "([ID:(.?)^])";

1 个答案:

答案 0 :(得分:0)

  

尝试在X中获取|[ID:X] text|

您可以将字符串与[]分开,获取以ID:开头的部分并获取其后的内容:

var s = "|[ID:X] text|";
var res = string.Empty;
var val = s.Split('[', ']').Where(p => p.StartsWith("ID:")).FirstOrDefault();
if (val != null)
    res = val.Substring(3);

正则表达式解决方案(请记住 X可以是Num和Word ):

\[ID:(\w*)]

请参阅regex demo

C#删除[ID:...]演示:

var res = Regex.Replace("|[ID:X] text|", @"\[ID:(\w*)]", string.Empty); 
// => | text|

C#演示了如何获取X

var res = string.Empty;
var m = Regex.Match("|[ID:X] text|", @"\[ID:(\w*)]");
if (m.Success)
   res = m.Groups[1].Value;