我環顧四周試圖找到這個問題的答案,但我找不到我正在尋找什麼。似乎應該有一種方法來決定是否有匹配和替換,否則做一些其他的事情,而不需要重複匹配。正則表達式匹配,然後替換
我想,以決定是否將測試字符串包含在
</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