繁体   English   中英

删除标签之间的文字

[英]Remove text between tags

在C#中,我需要删除可能出现在2个特定的关闭XML标签之间的文本:

因此,例如,我在字符串中输入了此文本:

</factura>]]></comprobante>

而且我需要删除此CDATA close元素,但这只是一个示例,可能是这2个close XML标记之间的其他文本。

我需要使用Regex做到这一点

我试过了:

System.Text.RegularExpressions.Regex.Replace(_inputString, @"/(?<=<\/factura>).*?(?=<\/comprobante>)/", "");

但是没有用。

提前致谢。

您无需在正则表达式中添加定界符/

 System.Text.RegularExpressions.Regex.Replace(_inputString, @"(?<=<\/factura>).*?(?=<\/comprobante>)", "");

并且最好添加(?s) DOTALL修饰符,该修饰符与特定标记内的文本匹配,即使它包含换行符,

System.Text.RegularExpressions.Regex.Replace(_inputString, @"(?s)(?<=<\/factura>).*?(?=<\/comprobante>)", "");

我来自PHP,如果失败了,我们感到抱歉。 我知道替换和占位符也可以在C#中使用。

pattern = @"(<\/[^>]+>)[^<]+<\/"; 
replace = "$1</";

C#中的Regex语法不需要/ ,只需删除它们:

/也不需要转义

_inputString= System.Text.RegularExpressions.Regex.Replace(_inputString,
                         @"(?is)(?<=</factura>).*?(?=</comprobante>)", "");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM