Member 11403304 Ответов: 1

Как я могу использовать регулярное выражение, чтобы проверить, отформатирован ли номер билета?


Я хотел бы, чтобы моя функция следовала какому-то условию, чтобы проверить, нуждается ли мой номер билета в форматировании или нет.
Если конвенция не будет соблюдена, то я хотел бы внести некоторые изменения в номер билета.
Пример
Номер билета 19К3072216 должен быть отформатирован таким образом 19-К3-07-002216 потому что он не отвечает следующим условиям.
Для этого номера билета я хотел бы сделать следующее:
1. Проверьте, имеет ли 1-я 2-я цифра значение 0-9 (числовое)
2. Проверьте, имеет ли 3-я цифра значение A или Z
3. Проверьте, имеет ли 4-я цифра значение 0-9 (числовое)
4. Проверьте, имеют ли 5-я и 6-я цифры значение даты (например, 2-значный год - 17, 90, 15 и т. д.)
5. Проверьте, являются ли следующие 6 цифр, то есть 7-12 цифр, числовыми
Потому что номер билета 19К3072216 не удовлетворяет вышеперечисленным условиям, я бы хотел, чтобы моя функция форматировала его так, чтобы он выглядел следующим образом 19-К3-07-002216
Поэтому Return strCaseNumber должен содержать отформатированный номер билета 19-К3-07-002216
Мой vb.net функция
Public Class Ticket_Code

    Public Shared Sub main()
        Dim strTicketNumber As String = FixTicketNumber("19K3072216")

    End Sub
    
    Public Shared Function FixCaseNumber(ByVal astrCaseNumber As String) As String
        Dim strCaseNumber As String = Replace(astrCaseNumber, "-", "")

        'Determine if ticket number is formatted
         How do I do this?


        'If ticket number is formatted add 2 zeros
         'How do I do this?

        'Else return unchanged
         'If ticket number is already formatted, just returned the number (original number)

        Return strCaseNumber

    End Function


End Class

What I have tried:

<pre lang="vb">Public Shared Function FixCaseNumber(ByVal astrCaseNumber As String) As String
        Dim strCaseNumber As String = Replace(astrCaseNumber, "-", "")

        'Determine if case is a converted TCIS case number



        'If TCIS converted case number add zero if necessary


        'Else return unchanged

        Return strCaseNumber

    End Function

NotPolitcallyCorrect

Вы могли бы использовать комбинацию методов класса string для проверки различных частей строки и использовать метод класса integer TryParse для проверки частей строки, которые вам нужно проверить на наличие целочисленных значений. Я уверен, что об этом рассказывал ваш учитель в классе.

1 Ответов

Рейтинг:
9

Patrice T

Я бы использовал регулярное выражение, сначала чтобы проверить, соответствует ли значение ожиданиям, отформатировано или нет,а затем я бы сделал замену, чтобы принудительно отформатировать.
Я бы начал с регулярного выражения типа (\д\д)-?([А-я]\Г)-? .
-----
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
Это показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]


Member 11403304

ppolymorphe спасибо за помощь я действительно использовал RegXe и теперь мой код работает!. Спасибо за вашу помощь