在C#中,我需要删除可能出现在两个特定的关闭XML标记之间的文本:
例如,我将这个文本放在一个字符串中:
</factura>]]></comprobante>
我需要删除这个CDATA关闭元素,但这只是一个示例,可能是这2个关闭XML标记之间的其他文本。
我需要使用正则表达式。
我试过了:
System.Text.RegularExpressions.Regex.Replace(_inputString, @"/(?<=<\/factura>).*?(?=<\/comprobante>)/", "");
但是没有用。
提前致谢。
答案 0 :(得分:0)
您无需在正则表达式中添加分隔符/
,
System.Text.RegularExpressions.Regex.Replace(_inputString, @"(?<=<\/factura>).*?(?=<\/comprobante>)", "");
最好添加(?s)
DOTALL修饰符,该修饰符与特定标记内的文本匹配,即使它包含换行符,
System.Text.RegularExpressions.Regex.Replace(_inputString, @"(?s)(?<=<\/factura>).*?(?=<\/comprobante>)", "");
答案 1 :(得分:0)
我来自PHP,很抱歉,如果我失败了。我知道替换和占位符在c#中也是可能的。
pattern = @"(<\/[^>]+>)[^<]+<\/";
replace = "$1</";
答案 2 :(得分:-1)
C#中的Regex语法不需要/
,只需删除它们即可:
和/
不需要逃避
_inputString= System.Text.RegularExpressions.Regex.Replace(_inputString,
@"(?is)(?<=</factura>).*?(?=</comprobante>)", "");