4

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

string s = "%hello%world%";

期望的结果:hello%world

我知道我可以用一些 if case 结合等来解决这个问题StartsWith()EndsWith()但我正在寻找一个更清洁的解决方案。

我想正则表达式是去这里的方式,这就是我需要你帮助的地方。

4

3 回答 3

16

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

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

但是如果你真的需要一个正则表达式,你需要使用 start ( ^) 和 end ( $) 锚点,像这样:

string result = Regex.Replace(input, "^%|%$", "");
于 2013-06-15T12:49:29.700 回答
5
s = s.Trim('%');

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

s = Regex.Replace(s, @"^%+|%+$", "");
于 2013-06-15T12:49:43.703 回答
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));
于 2013-06-15T13:01:04.377 回答