如何在特定字符之间获取值

时间:2013-08-16 11:30:47

标签: c# regex

我需要在<>之间获取值并且在>之间和下一个< 这是我的字符串

<MES>MID=13/08/15§13:22:17+08<RB01>I=180.8U=3.87<SET01>ALVU=20.00

我想要的输出是:

MID=13/08/15§13:22:17+08
RB01
I=180.8U=3.87
SET01
ALVU=20.00

这可以通过使用RegEx吗?

我一直在努力工作几个小时,请注意我的正则表达知识不是我想要的:-)所以任何帮助都会感激不尽。

3 个答案:

答案 0 :(得分:3)

此表达式将匹配这些组:

([^<>]+)

你可以试试:

http://rubular.com/r/zQ64Z1heI1

您可以将括号“(”和“)”之间的“值”恢复为具有匹配器的组(使用Java或Ruby)。其他语言也有不同的语法来做同样的事情。

答案 1 :(得分:1)

尝试这种模式:

/[^<>]*/g

答案 2 :(得分:1)

如果在输出中输入MES不是问题,您可以非常轻松地完成此操作。

没有正则表达式:

string input = "<MES>MID=13/08/15§13:22:17+08<RB01>I=180.8U=3.87<SET01>ALVU=20.00";
string output = input.Replace(">", "\r\n").Replace("<","\r\n").Trim();

使用正则表达式:

string input = "<MES>MID=13/08/15§13:22:17+08<RB01>I=180.8U=3.87<SET01>ALVU=20.00";
string output = Regex.Replace(input, @"[<>]", "\r\n").Trim();

对于这两个,输出是相同的:

MES
MID=13/08/15§13:22:17+08
RB01
I=180.8U=3.87
SET01
ALVU=20.00