使用正则表达式从字符串中提取多个变量

时间:2011-11-22 14:14:18

标签: c# .net regex

我有一个这样的字符串:

++ ST/-- OP/22 SomeString/21 AnotherString/-- CL/++ ED

“++ ST”和“++ ED”是开 - 关文件标记,
“ - OP”和“ - CL”是开放式关闭的信息,
“/” - 是一种分隔符,
“22”和“21”是变量串的标识。

所以我需要以某种方式使用正则表达式提取标识为22和21的变量(在该示例中为“SomeString”和“AnotherString”)。 甚至可以用这样的字符串这样做吗?

2 个答案:

答案 0 :(得分:1)

至少在那个例子中,你不需要正则表达式。

如果你知道可能的分隔符,并且有问题的变量总是在它们之间有分隔符并用空格分隔(如你的例子),string.Split就可以了。

string.Split有一个重载,它会将一个字符串列表拆分为可以使用的。

var separators = new string[] {"++ ST", "++ ED", "-- OP", "-- CL", "/", " "};
var res = "++ ST/-- OP/22 SomeString/21 AnotherString/-- CL/++ ED"
          .Split(separators, StringSplitOptions.RemoveEmptyEntries);

res[0] == "22"; // true
res[1] == "SomeString"; // true
res[2] == "21"; // true
res[3] == "AnotherString"; // true

答案 1 :(得分:0)

我认为你应该使用带有'/'字符的String.Split() (如果我知道你在一个变量中拥有所有的行)