Я работаю над приложением, которое моя команда унаследовала от разработчика (13-летнее приложение), и я пытаюсь запретить приложению выдавать сообщения об ошибках для неинициализированных переменных, когда эти переменные появляются внутри тегов <script> </script>
. Я нашел несколько решений для регулярных выражений, которые будут отмечать, когда что-то находится внутри этих тегов, но это не работает, когда я по какой-то причине запускаю сборку. Кто-нибудь может увидеть проблему с первого взгляда? Я добавил только строку кода If New Regex <script>
.
Private Function ReplaceForAnalyzeItalics(ByVal m As Match) As String
Dim myStr As String = m.Value
'This ignore articles, the word x-ray, section labels such as (a)-(f)
If myStr.ToUpper.Contains(" A ") Or myStr.Contains("(A ") Or myStr.Contains(vbLf & "A ") Or myStr.ToUpper.Contains("X-R") Then GoTo ReplaceForAnalyzeItalicsEND
If New Regex("^[\s\S]\([a-ms]\)", RegexOptions.None).Match(myStr).Success Then GoTo ReplaceForAnalyzeItalicsEND
If New Regex("^[\s\S]{[lcr]}", RegexOptions.None).Match(myStr).Success Then GoTo ReplaceForAnalyzeItalicsEND ' Regex <pre:watex> array alignment pattern
**If New Regex("^\<script[\s\S]*\>[\s\S]*<\/script\>", RegexOptions.None).Match(myStr).Success Then GoTo ReplaceForAnalyzeItalicsEND**
'Don't remember what this was rejecting
If myStr(3) = "." Then
If myStr(1) = "." Then GoTo ReplaceForAnalyzeItalicsEND
If Char.IsLetter(myStr(4)) Then GoTo ReplaceForAnalyzeItalicsEND
End If
If myStr(2).ToString.IndexOfAny("msghjkuTCAVWJKNHLFOHC".ToCharArray) = 0 Then
If myStr.StartsWith("/ ") Or myStr(1) = "/" Then GoTo ReplaceForAnalyzeItalicsEND 'This rejects units such as m/s
If myStr.EndsWith("/ ") Or myStr(3) = "/" Then GoTo ReplaceForAnalyzeItalicsEND 'This rejects units such as m/s
If myStr(1) = ">" Or myStr(1) = ")" Then GoTo ReplaceForAnalyzeItalicsEND 'This rejects units following number or probable eqn tag or vector or <s:degree>
If (myStr(1) = " " Or myStr(1) = "-") And (Char.IsDigit(myStr(0)) Or myStr(0) = ">" Or myStr(0) = ")") Then GoTo ReplaceForAnalyzeItalicsEND 'This rejects units following number or probable eqn tag or vector
End If
If (Char.IsDigit(myStr(0)) Or Char.IsDigit(myStr(1))) And (myStr(2) = "X" Or myStr(2) = "x") And (myStr(4) = "1" Or (myStr(3) = "1" And myStr(4) = "0")) Then GoTo ReplaceForAnalyzeItalicsEND 'This rejects scientific notation
If myStr.StartsWith("p>") Then GoTo ReplaceForAnalyzeItalicsEND 'This rejects isotopes of elements
If myStr(2).ToString.IndexOfAny("ehps".ToCharArray) = 0 And myStr(3) = ":" And (myStr(1) = "<" Or myStr(1) = "/") Then GoTo ReplaceForAnalyzeItalicsEND 'This rejects the namespaces
If myStr(1) = "_" Or myStr(3) = "_" Then GoTo ReplaceForAnalyzeItalicsEND 'This rejects symbolic answer prompts describing which variable names to use
ErrorCheckManager.AddHighlight(myStr(2).ToString, "may need italics", "", m.Index, myStr(2), 117)
ReplaceForAnalyzeItalicsEND:
Return myStr.Remove(2, 1).Insert(2, "|") 'Replace letter with nonletter so this will not get matched again
End Function