reg match для поиска строки informatica с разделителем '/' - PullRequest
1 голос
/ 26 июня 2019

У меня есть строковый столбец с приведенными ниже образцами данных.

1) ABC / DEF / 003 - Это для тестирования

2) XYZV / T & X / ABC / 004 - Этодля тестирования

3) ZXC / 004/007 - Это для тестирования

4) Это тестирование

Используя regextract / regmatch мне нужно искать / извлекать получить толькониже данных

1) ABC / DEF / 003

2) XYZV / T & X / ABC / 004

3) ZXC / 004/007

4) он должен вернуть ноль

Я использовал поиск по шаблону как (.*)([^A-Z0-9\/\._]), но он не будет удовлетворять последним данным (4).

Не могли бы вы помочь мне с этим?

1 Ответ

0 голосов
/ 26 июня 2019

Образец (.*)([^A-Z0-9\/\._]) сначала будет соответствовать всем символам, кроме новой строки из-за .*, и захватывает его в группе 1.

Во второй части используется класс отрицательных символов , который соответствует 1 раз любому символу, который не входит в класс символов, и захватывает его в группе 2.

Если вы не хотите соответствовать последнему условию, вы можете сделать регулярное выражение более конкретным.

Вы можете повторить класс символов [A-Z0-9._&]+, а затем повторить группу (?:/...) + один или несколько раз, когда перед ним стоит косая черта. Амперсанд отсутствует, можно добавить и это.

Затем сопоставьте пробел, - и пробел. После этого вы можете сопоставить любой символ кроме символа новой строки 0+ раз, используя .*

[A-Z0-9._&]+(?:/[A-Z0-9._&]+)+ - .*

Regex demo

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