O365 DLP пользовательское регулярное выражение - PullRequest
1 голос
/ 11 января 2020

Я пытаюсь создать пользовательское регулярное выражение для обнаружения номеров социального страхования в O365 DLP. Условием является то, что первые три числа di git не должны начинаться с 000 или 666 или 150, а последние последние четыре числа di git не должны заканчиваться на 0000. Поэтому я придумал приведенное ниже регулярное выражение,

(?! 000 | 666 | 150) \ d {3} - \ d {2} - (?! 0000) \ d {4} - Это прекрасно работает

Нужное решение: что, если я хочу исключить тот же шаблон, если он начинается со слова скажем для примера Apple: 173-12-9878 или Содержание: 173-12-9878 , я попытался добавить слово в минус похож на (?! Apple: | Content:) (?! 000 | 666 | 150) \ d {3} - \ d {2} - (?! 0000) \ d {4}, но не могу получить это работа.

Пожалуйста, сообщите, а также предложите, если есть лучший способ добиться этого. Спасибо.

1 Ответ

1 голос
/ 11 января 2020

Используйте регулярное выражение с lookbehind :

\b(?<!Apple: |Content: )(?!0{2}|666|150)\d{3}-\d{2}-(?!0{4})\d{4}\b

См. доказательство и объяснение .

(?<!Apple: |Content: ) отрицательный взгляд сзади предотвратит совпадения после Apple: и Content:.

Примечание. \b - это граница слова, поэтому запрещены совпадения с более длинными числами, чем вы ожидаете.

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