匹配并替换string中的第一个和最后一个字符

时间:2013-06-15 12:48:51

标签: c# asp.net regex

我想从字符串的开头和结尾删除%个字符。例如:

string s = "%hello%world%";

期望的结果:hello%world

我知道如果案例结合StartsWith()EndsWith()等,我可以解决这个问题。但我正在寻找更清洁的解决方案。

我认为regexp是去这里的方式,而这正是我需要你帮助的地方。

3 个答案:

答案 0 :(得分:14)

不需要正则表达式。只需使用:

string result = input.Trim('%');

但是如果你真的需要正则表达式,你需要使用start(^)和end($)锚点,如下所示:

string result = Regex.Replace(input, "^%|%$", "");

答案 1 :(得分:5)

s = s.Trim('%');

正则表达式不是简单的方法,但如果你坚持:

s = Regex.Replace(s, @"^%+|%+$", "");

答案 2 :(得分:1)

您可以执行以下操作:

 string s = "%hello%world";
 char c = '%';
 int indexBegin = s[0] == c ? 1 : 0;
 int indexEnd = s[s.Length - 1] == c ? 1 : 0;
 s = s.Substring(indexBegin, s.Length - (indexEnd+indexBegin));