我需要在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>"
将以该顺序出现,但我不确定它们之间的空格。
答案 0 :(得分: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>"; // ;-)
答案 1 :(得分:1)
与Regex玩得开心!
Regex.Replace("<UL> <P> <LI>", "<UL>.*<LI>", "<UL><LI>", RegexOptions.None);
将第一个参数替换为您需要更改的字符串,如果有&lt; UL&gt;(任何字符,无论它们包括空格)&lt; LI&gt;,它将仅用&lt; UL&gt;替换所有字符;&LT; LI&GT;
答案 2 :(得分:0)
尝试使用Regex:
Regex.Replace(inputString, "> *<", "><");
答案 3 :(得分:0)
假设&lt; UL&GT;标签在每个字符串中。
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>", "");
答案 4 :(得分:0)
只看这里 String MSDN
进行重播