Если оператор не работает: необходимо приложение, чтобы прекратить отмечать текст внутри тегов скрипта - PullRequest
0 голосов
/ 02 апреля 2019

Я работаю над приложением, которое моя команда унаследовала от разработчика (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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...