Начиная с простого:
\d{4}\?\d{2}
Но это также будет соответствовать 8764?23
в более длинной строке, такой как 98764?23
или 8764?234
.
Если вам нужно найти точноесоответствует как отдельные значения в CSV, требуется более сложное регулярное выражение:
(?:^|,)\s*(\d{4}\?\d{2})\s*(?:,|$)
На первый взгляд это может показаться немного странным, поэтому давайте разберем его:
(?:^|,)
использует синтаксис (something|something else)
, чтобы разрешить выбор из двух разных вещей - здесь он разрешает либо само начало строки ^
, либо запятую ,
.?:
в начале исключает включение этого выражения в группу захвата. \s*
позволяет отображать любое количество пробелов (т. Е. Ноль или более пробелов, табуляции и т. Д.) Перед соответствующим выражением. (\d{4}\?\d{2})
указывает ровно 4 цифры \d{4}
, за которыми следует знак вопроса \?
(который необходимо экранировать, чтобы отличить его от регулярного выражения ?
, означающего 0 или 1 вхождение) , за которыми следуют еще 2 цифры \d{2}
.Окружающие скобки ()
используются для указания этого в качестве группы захвата. \s*
допускает больше пробелов после сопоставленного выражения. (?:,|$)
допускает запятую ,
иликонец строки $
и ?:
исключает это из группы захвата.
Демо
https://regex101.com/r/X0Ic4v/1
Использование
Вышеуказанное можно использовать с ExtractText
от Nifi для получения первой группы захвата для каждого матча.Поскольку интерес представляет только группа захвата, а не остальная часть совпадения, для «Включить группу захвата 0» может быть задано значение false.Предположительно для обоих параметров «Включить многострочный режим» и «Включить группу повторяющегося захвата» должно быть установлено значение true.
Дополнительные соображения
В приведенном выше предположении 8764?23
выглядит точно так жеэто как значение в строке CSV.Но, может быть, вам нужно разрешить "8764?23"
?Или, возможно, другие, такие как '8764?23'
, _8764?23_
или даже ABC8764?23DEF
?Здесь слишком много возможных вариантов, один размер подходит всем, поэтому, пожалуйста, ответьте в комментариях, чтобы указать требования, если вышеперечисленное не соответствует вашим потребностям.