我昨天回答的原始问题是如何从字符串中删除特定字符,然后删除这两个字符之间的内容。
我谈过从这样的字符串中删除......
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之后是否有。,如果有,那么只是删除它?
答案 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;
}