RegEx Запрос возврата п-й матч

Обновить

April 2019

Просмотры

26 раз

1

В принципе, у меня есть регулярное выражение выражения в запросе доступа , который вытягивает код продукта из длинной строки текста. Существует до 10 кодов в каждой строке и мне нужно десять полей в моем запросе , чтобы тянуть каждый из десяти кодов.

До сих пор я могу только получить его , чтобы вытащить первый или последний код, изменяя Global = True|False. Код , я использую ниже:

Function extSKU( _
    Comments As Variant)

    Dim SKU_re As New RegExp
    SKU_re.Pattern = "\n\d{4,5}[A-Z]{0,1}"
    SKU_re.Global = False
    SKU_re.IgnoreCase = True
    Dim SKU_m
    For Each SKU_m In SKU_re.Execute(Comments)
      extSKU = Replace(Trim(UCase(SKU_m.Value)), "Completed By: ", "")
    Next
End Function

Любая помощь очень ценится!

1 ответы

0

Final answer: This pulls the first of ten SKUs and I have ten different functions for each of the SKU with an IF to return null if there aren't n matches.

Function extSKU1( _
  Comments As Variant)
  Dim SKU_re As New RegExp
  SKU_re.Pattern = "\n\d{4,5}[A-Z]{0,1}\s{0,1}(\d{0,3})"
  SKU_re.Global = True
  SKU_re.IgnoreCase = True
  Dim SKU_m
  Dim SKU As New Collection
  For Each SKU_m In SKU_re.Execute(Comments)
    SKU.Add Trim(UCase(SKU_m.Value))
  Next
  extSKU1 = SKU(1)
End Function