использование регулярных выражений для применения фильтра и усечения данных - PullRequest
0 голосов
/ 20 апреля 2020

Я новичок в regex и пытаюсь обработать текстовые данные с сервера LDAP. текстовые данные имеют несколько записей, разделенных ";" , Я пытаюсь отфильтровать записи на основе некоторых ключевых слов. Затем из отфильтрованных записей извлеките имя группы.

Пример данных : cn = AB C .DEVOPS.ADMIN, ou = securitygroups, o = lok; сп = BCD.DEVOPS.ADMIN, OU = securitygroups, o = лок; сп = DDI.OPERATEUR, OU = securitygroups, o = лок; сп = BYZ.LOKUS, НУ = securitygroups, о = лок; cn = VB12312, ou = группы безопасности, o = lok; cn = BYZ.MASTER, ou = securitygroups, o = lok;

Из приведенных выше примеров данных я хочу отфильтровать на основе текста "BYZ". это должно вернуть 2 записи. сп = BYZ.LOKUS, НУ = securitygroups, о = лок; сп = BYZ.MASTER, НУ = securitygroups, о = лок; И, наконец, извлеките из нее название группы. Он должен вернуть LOKUS, MASTER

Можете ли вы помочь мне с регулярным выражением.

Я использую apache httpd сервер для запроса сервера LDAP. и используя следующий код для установки заголовка ответа RequestHeader edit * X-Remote-Groups regex-to-be-do

1 Ответ

1 голос
/ 20 апреля 2020

Краткий ответ: BYZ[.](.+),

  1. соответствует последовательности BYZ
  2. соответствует литералу "." заключив в квадратные скобки [.], потому что "." это специальный символ в языке регулярных выражений, который означает «любой символ». Элементы в квадратных скобках считаются буквальными символами, даже если они обычно имеют специальные значения.
  3. фиксирует в группе все, что следует до запятой: (.+?),. ? заставляет. + захватывать только столько символов, сколько необходимо для удовлетворения требований. В противном случае будут собраны все остальные данные.

Вы можете поиграться с этим регулярным выражением на Pythex

Результатом будет два матча, каждый с одной группой. LOKUS и MASTER

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...