字符串上的正则表达式,用于在最后一次冒号后返回文本

时间:2014-03-11 09:21:26

标签: c# regex

我有以下正则表达式:

:57[^:]?:*[^:]*

我正在尝试创建以返回最后一个冒号之后的所有内容:

修改 的     :57A:/ 19000019

SOMEMORETEXT
:59:xxxxxxxx

它不应该从前面的标记或前一个标记返回任何内容,但我只能返回以下内容:

:57A:/19000019 SOMEMORETEXT

其中包括:57A: - 但我确实需要正斜杠,而最后一个角色需要另一个角色:

修改 的 好的,所以我继续前进。我现在用的是c#:

var result = Regex.Match(message, String.Format(":{0}[^:]?:*[^:]*", tag ));

现在返回我需要的所有项目,但所有项目都在一个字符串中,包括我不需要的标签。我怎么知道取这个字符串并根据\ n?

创建一个数组/列表

2 个答案:

答案 0 :(得分:1)

尝试看看后面的

(?<=\:\w{2,3}\:).*

答案 1 :(得分:0)

/^\(.*:\)*\(.*\)$/\2/会做到这一点。 你可以用以下方法测试:

echo ':57A:/19000019 SOMEMORETEXT' | sed -e 's/^\(.*:\)*\(.*\)$/\2/'

如果有可能,那么我建议尝试在其分隔符上“拆分”字符串(使用除正则表达式之外的其他内容,例如'Split'之类的函数),因为这可能更可靠,更有效率