C# 正则表达式:将空格替换为 XML 标记
Posted
技术标签:
【中文标题】C# 正则表达式:将空格替换为 XML 标记【英文标题】:C# Regex: Replace whitespace into XML tag 【发布时间】:2021-04-24 02:55:38 【问题描述】:我正在寻找一个将空格替换为 XML 标记的正则表达式。 例如:
<TAG 1>bla bla bla</TAG 1>
替换为:
<TAG1>bla bla bla</TAG1>
这是我写的:
string currentLine = Regex.Replace(currentLine,
@"(?<=\</?\S*)\s+(?=\S*\>)", String.Empty);
但它不起作用,因为它也在 2 个标签之间删除...
感谢您的帮助!
【问题讨论】:
喜欢这个? regex101.com/r/YL2iPP/1 【参考方案1】:您应该记住,\S
匹配 任何 非空白字符,这就是为什么如果某些文本粘在 <
或 >
上,您可能会匹配角度之外的空格括号。
你可以使用
var result = Regex.Replace(text, @"(?<=<[^<>]*)\s(?=[^<>]*>)", "");
请参阅regex demo。详情:
(?<=<[^<>]*)
- 紧跟在<
前面的位置,然后是除<
和>
之外的任何零个或多个字符
\s
- 一个空格
(?=[^<>]*>)
- 紧跟在<
和>
之外的任何零个或多个字符的位置,然后是>
。
【讨论】:
好,+1,但值得注意的是,这是假设没有 XML 属性。以上是关于C# 正则表达式:将空格替换为 XML 标记的主要内容,如果未能解决你的问题,请参考以下文章