-1

我需要在忽略任何空格的同时替换 C# 中的文本。

例如:

"This is a text with some tags <UL> <P> <LI>", 
"This is a text with some tags <UL>   <P>    <LI>", 
"This is a text with some tags <UL><P>    <LI>" or 
"This is a text with some tags <UL><P><LI>"

必须全部替换为

"This is a text with some tags <UL><LI>"

请注意,我不能从整个字符串中删除空格然后替换所需的字符串,因为这会产生错误的结果 -

"Thisisatextwithsometags<UL><LI>"

我确信这 3 个标签

"<UL>", "<P>" and "<LI>"

将按该顺序出现,但不确定它们之间的空格。

4

5 回答 5

1

使用String.Replace

string text = "This is a text with some tags <UL>   <P>    <LI>";
int indexOfUl = text.IndexOf("<UL>");
if (indexOfUl >= 0)
{
    text = text.Remove(indexOfUl) + text.Substring(indexOfUl).Replace(" ", "").Replace("<P>","");
}

旧答案(在您上次编辑之前工作):

string[] texts = new[]{"<UL> <P> <LI>", "<UL>   <P>    <LI>", "<UL><P>    <LI>" , "<UL><P><LI>"};
for(int i = 0; i < texts.Length; i++)
{
    string oldText = texts[i];
    texts[i] = oldText.Replace(" ", "").Replace("<P>", "");
}

或 - 因为问题不是很清楚(“必须全部替换为<UL><LI>):

// ...
texts[i] = "<UL><LI>"; // ;-)
于 2013-09-10T15:12:16.103 回答
1

享受正则表达式的乐趣!

Regex.Replace("<UL>   <P>    <LI>", "<UL>.*<LI>", "<UL><LI>", RegexOptions.None);

将第一个参数替换为您需要更改的字符串,如果有 <UL>(任何字符,无论它们包括空格)<LI>,它将仅用 <UL><LI> 替换所有这些。

于 2013-09-10T15:25:45.020 回答
0

假设 <UL> 标签在每个字符串中。

  string[] stringSeparators = new string[] { "<UL>" };
  string yourString = "This is a text with some tags <UL><P><LI>";
  string[] text = yourString.Split(stringSeparators, StringSplitOptions.None);
  string outPut = text [0]+" "+ ("<UL>" + text[1]).Replace(" ", "").Replace("<P>", "");
于 2013-09-10T15:40:22.667 回答
0

看看这里字符串 MSDN

也用于替换使用String.Replace(string string)

于 2013-09-10T15:48:13.423 回答
0

尝试使用正则表达式:

Regex.Replace(inputString, "> *<", "><");
于 2013-09-10T15:31:06.857 回答