我环顾四周试图找到这个问题的答案,但我找不到我正在寻找什么。似乎应该有一种方法来决定是否有匹配和替换,否则做一些其他的事情,而不需要重复匹配。正则表达式匹配,然后替换
我想,以决定是否将测试字符串包含在
</body></html>
结束,正前方的标签注入一些文本的HTML文档。当然,这两个标签之间可能会有空白/回车符/换行符的组合,因此我正在使用正则表达式。但是,测试字符串可能只是纯文本,如果正则表达式匹配失败,我只会将文本追加到字符串的末尾。当然,我可能会让事情变得更加困难。
我真的没有任何代码显示在这里,因为我想不通,如果这是可能的.NET正则表达式实现,但在这里表示我愿意做一些psudo代码:
Dim testString As String = some file contents
Dim reg As New Regex("(<\/body>\s*<\/html>)", RegexOptions.IgnoreCase)
Dim rMatch As Match = reg.Match(testString)
If rMatch.Success Then
rMatch.Replace(newString)
Else
testString &= alternateNewString
End If
当然,我需要将end body和end html标签放入newString以正确关闭文档,但这应该不成问题。我似乎无法实现的部分是匹配替换,而无需再次运行正则表达式。这似乎是调用match来确定它是否匹配,然后调用replace使它运行两次。再次,我可能会过度考虑这一点,或者过早地进行优化。你怎么看?
我的正则表达式技能缺乏,但它开始变得有意义。感谢您花时间整理这个回复。看起来正是我需要的! – Wayne