如何更换部分字符串?

时间:2015-01-07 12:03:07

标签: c# .net string

假设我有以下字符串:

string str1 = "<tag tsdfg> some other random text";
string str2 = "<tag sdfgsdfgfsdg> some other random text";
string str3 = "<tag 1564> some other random text";

我想将这些字符串更改为

"<tag> some other random text"

7 个答案:

答案 0 :(得分:3)

使用正则表达式:

str1 = Regex.Replace(str1, @"\<tag.*?\>", "<tag>");

小提琴:

https://dotnetfiddle.net/LdokRn

答案 1 :(得分:1)

您可以使用正则表达式替换标记内的所有任意文本

Regex.Replace("<tag tsdfg> some random text", @"<(.*)?\s+(.*)?>", "<$1>");

这将在空格后有效替换任何标记末尾的任何文本。

Try it out

答案 2 :(得分:1)

str1.Replace((str1.Substring(str1.IndexOf("<"), str1.IndexOf(">"))), "<tag>");

答案 3 :(得分:1)

如果在<tag之后总会有空格,那么您可以这样使用Split()

string str1 = "<tag tsdfg> some other random text";
string values = str1.Split(' ')[0]+">";

答案 4 :(得分:0)

你可以这样做:

str1="<tag>" + str1.Remove(0, str1.IndexOf(">") + 1);

它从索引0删除到&gt; +1然后将其添加到&#34;标记&#34;

答案 5 :(得分:0)

你也可以这样做:

string str = "<tag tsdfg> some other random text";

string newStr = new string(str.TakeWhile(c => !Char.IsWhiteSpace(c))
                              .Concat(str.SkipWhile(c => c != '>'))
                              .ToArray());

Console.WriteLine(newStr);  //  "<tag> some other random text" 

答案 6 :(得分:0)

让我们至少做一次,不像其他解决方案,不是删除或替换,而是提取; - ]

string str1 = "<tag tsdfg> some other random text";

Match match = Regex.Match(str1, @"\<(tag).+?\>(.+)");
string result = String.Format("<{0}>{1}", match.Groups[1].Value, match.Groups[2].Value);
Console.WriteLine(result );