1

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

<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 实现吗?

我已经尝试了几个小时,请注意,我的正则表达式知识不是我想要的:-) 所以任何帮助都将不胜感激。

4

3 回答 3

3

此表达式将匹配这些组:

([^<>]+)

你可以试试:

http://rubular.com/r/zQ64Z1heI1

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

于 2013-08-16T11:48:07.787 回答
1

试试这个模式:

/[^<>]*/g
于 2013-08-16T11:45:58.707 回答
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
于 2013-08-16T13:04:39.070 回答