替换特定文本,同时忽略空格
本文关键字:空格 文本 替换 | 更新日期: 2023-09-27 18:30:58
我需要在忽略任何空格的情况下替换 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>"
将按该顺序出现,但不确定它们之间的空格。
玩得开心正则表达式!
Regex.Replace("<UL> <P> <LI>", "<UL>.*<LI>", "<UL><LI>", RegexOptions.None);
将第一个参数替换为需要更改的字符串,如果有
- (任何字符,无论它们包含什么空格)
- ,它将仅用
- 替换所有这些参数。
使用 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>"; // ;-)
尝试使用正则表达式:
Regex.Replace(inputString, "> *<", "><");
假设每个字符串中都有
- 标签。
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>", "");
看看这里字符串MSDN
也用于重新定位使用字符串.替换(字符串字符串)