2016-06-09 2 views
1

Я пытаюсь найти шаблоны для обнаружения некоторых HS-кодов некоторых файлов, которые я разбор.
Regex, сопоставляющий несколько типов строк для поиска HS-кодов

Я могу найти три типа: строк, содержащих HS-коды.

  1. 1 AUTOMATION BYTRANSEXTENDED 4020.HS-CODE: 8428.9000
    Здесь я хочу, чтобы извлечь все после HS-CODE: (8428.9000)

  2. RECONDHS CODE 84669400AMS REF CHS220928SCAC SSLL.
    Здесь я хочу, чтобы получить все после того, как HS CODE, пока новый нечисловая номер прибывает (84669400)

  3. ============H.S.CODE: 8466.93
    Это как первый, получить все после H.S CODE: (8466,93)

Узор HS-CODE:\s+\K\S+ работает для 1-го типа, а также для 3-го типа (H.S.CODE: \s+\K\S+). Вы можете проверить это здесь: https://regex101.com/r/iZ9lO1/1

Я хотел бы знать, как я могу объединить шаблон, чтобы соответствовать любому из трех типов, описанных выше.

Заранее спасибо.

ответ

1

Вы можете использовать это регулярное выражение для удовлетворения всех три требований, указанных в вопросе:

H\.?S[.\s-]CODE[:\s]+\K[\d.]+ 

Updated RegEx Demo

Это очень похоже на вашу попытку регулярного выражения с некоторым дополнительным согласованием вокруг H и S и CODE сегментов ,

+0

Спасибо, но он не подходит для второго типа строк. Вместо того, чтобы принимать каждое число до первого нечислового значения '84669400', оно берет все' 84669400AMS' до следующего пустого пространства. –