У меня есть список строк, который содержит несколько наборов символов и пробелов в начале, прежде чем встречаются первые три цифры. если шаблон найден, то мне нужно собрать из строки только первые три цифры.
Пример1:
String: "SEE 222 Newcastle NSW 203"
Expected output: 222
Пример2:
String: "SEE TEMP 212 Newcastle NSW 203"
Expected output: 212
Пример3:
String: "SEE TEMP212 Newcastle NSW 203"
Expected output: 212
Что это, VBA или Vbscript? Пожалуйста, используйте только один.
VBA будет лучшим вариантом. Спасибо
@MustofaRizwan Вначале не требуется «SEE»
Sub TestExtractFirstThreeDigits()
Dim testString1 As String
Dim testString2 As String
Dim result As String
testString1 = "SEE 222 Newcastle NSW 203"
testString2 = "SEE TEMP 212 Newcastle NSW 203"
result = ExtractFirstThreeDigits(testString1)
Debug.Print "Example 1: " & result ' Expected output: 222
result = ExtractFirstThreeDigits(testString2)
Debug.Print "Example 2: " & result ' Expected output: 212
End Sub
Function ExtractFirstThreeDigits(inputString As String) As String
Dim regex As Object
Dim matches As Object
Dim firstThreeDigits As String
' Create the RegExp object
Set regex = CreateObject("VBScript.RegExp")
With regex
.Pattern = "\b\d{3}\b" ' Pattern to match exactly three digits
.Global = False ' We only need the first match
End With
' Execute the regex search
Set matches = regex.Execute(inputString)
' Check if any match is found
If matches.Count > 0 Then
firstThreeDigits = matches(0).Value
Else
firstThreeDigits = ""
End If
' Return the first three digits found
ExtractFirstThreeDigits = firstThreeDigits
End Function
Пожалуйста, не делайте слепо чужую работу за них. Это только поощряет меня присылать мне типы кодов. Этот вопрос не заслуживает ответа в его нынешнем виде, поскольку это всего лишь список требований.
Спасибо, это работает, и лучшее объяснение в комментариях. но не работает на «SEE TEMP212 Newcastle NSW 203»
Например3: он не работает. Пожалуйста, предложите. Строка: «SEE TEMP212 Newcastle NSW 203». Ожидаемый результат: 212 и не работает.
«\d{3}\b» у меня работает для всех шаблонов. Спасибо всем за ваши комментарии.
@Geert Bellekens Я хотел бы признаться, что некоторое время назад я также ответил на такой ответ: «Мы не являемся бесплатной службой написания кода, бла, бла, бла...». Я получил сообщение от администраторов, в котором говорилось, что мы «действительно предлагаем услуги бесплатного кода». Хорошо бы рассказать ОП, как хороший вопрос увеличит его шансы получить (хороший) ответ, и дать ссылку на сообщение, описывающее, что означает хороший вопрос. Кроме того, демонстрация собственных усилий по решению проблемы побудит более опытных пользователей попытаться помочь ему. Все иногда были новичками и не знали, как здесь себя вести...
Мое плохое улучшится, помогая людям.
В вашем сообщении нет ясности. Вам нужно «ВИДЕТЬ» в начале?