C#String Splitting - 没有结束分隔符

时间:2013-01-04 11:58:13

标签: c# regex string split

我昨天回答的原始问题是如何从字符串中删除特定字符,然后删除这两个字符之间的内容。

我谈过从这样的字符串中删除......

lg-109-1.ea-091-2.hd-180-1.hr-220-1

我没有意识到有时我的角色我想分开(在这个例子中它是高清和。和hr之间的所有东西。)

但是你看到hr没有.因此它没有被删除

这是我正在使用的代码......

public static string RemoveB(string s) {
    s = Regex.Replace(s, @"hr.*?\.", "");
    s = Regex.Replace(s, @"hd.*?\.", "");
    return s;
}

有没有人知道如何检查在hr之后是否有。,如果有,那么只是删除它?

3 个答案:

答案 0 :(得分:2)

你可以做到

Regex.Replace(s, @"(hr|hd).*?(\.|$)", "");

$描绘了字符串的结尾

答案 1 :(得分:1)

尝试使用(\.|$)代替\.,以匹配.或行尾。或者,如果您知道hr始终是最后一个条目,则可以使用$代替\.来始终匹配该行的结尾。

答案 2 :(得分:-3)

public static string RemoveB(string s) {
    s = s.Replace("hr.","$");
    s = s.Replace("hr","");
    s = s.Replace("$","hr.");
    return s;
}
相关问题