3

昨天回答了我最初的问题,即如何从字符串中拆分出特定字符,然后删除这两个字符之间的内容。

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

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

我没有意识到有时我想分割我的角色(在这种情况下,它是 hd 和 . 以及 hr 和 . 之间的所有内容)

但是你看到 hr 没有.所以它没有被删除

这是我使用的代码...

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

有谁知道如何检查 hr 之后是否有 .,如果没有,则将其删除?

4

3 回答 3

2

你可以做

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

$描述字符串的结尾

于 2013-01-04T12:21:04.680 回答
1

尝试使用(\.|$)而不是仅仅\.为了匹配.行尾。或者,如果您知道 hr 始终是最后一个条目,您可以使用$而不是\.始终匹配行尾。

于 2013-01-04T12:13:09.753 回答
-3
public static string RemoveB(string s) {
    s = s.Replace("hr.","$");
    s = s.Replace("hr","");
    s = s.Replace("$","hr.");
    return s;
}
于 2013-01-04T12:03:43.387 回答