在实例前后没有#!#
的情况下,我需要从字符串中删除#
个实例。
例如...
LoremImpsum#!#Dolor
=>匹配#!#
Lorem #!#ASD##
=>匹配#!#
Lorem #!##
=>没有匹配项
Lorem##!#
=>没有匹配项
foreach (Match match in Regex.Matches(formattedHtml, @"(?<!#)(#!#)(?!#)")
formattedHtml = formattedHtml.Replace(match.Value, "");
但是在我看来,消极的前瞻性或后瞻性是行不通的。 谢谢。
答案 0 :(得分:1)
您似乎在多次出现且仅应替换其中之一的地方编码失败。
您的正则表达式确实可以做到。但是,问题出在替换代码上。而不是关注
foreach (Match match in Regex.Matches(formattedHtml, @"(?<!#)(#!#)(?!#)")
formattedHtml = formattedHtml.Replace(match.Value, "");
您应该使用
formattedHtml = Regex.Replace(formattedHtml,@"(?<!#)(#!#)(?!#)","");
根据您的初始代码,如果找到匹配项,它将替换字符串中所有出现的内容,即使该字符串的前/后是“#”