[英]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.