Я пытаюсь узнать кое-что о Regex. Я начинаю с попытки скрыть некоторые совпадения для девятизначного числа, например SSN, но пусть все девятизначные числа имеют слово «порядок» или «номер маршрута», но кажется, что только строки, которые имеют одинаковые длина будет работать. Есть ли способ обойти это без создания нескольких строк? Благодаря!Регулярные символы регулярных выражений?
(?<!(Order:\s|Routing\snumber:\s))
(?!000|666)([0-6]\d\d|7[01256]\d|73[0123]|77[012])
([-]?)
([1-9]{2})
\3
([1-9]{4})
(?!([\w&/%"-]))
Для блокировки из ПЛА, это, кажется, работает ^(?!000)(?!666)(?!9)\d{3}([- ]?)(?!00)\d{2}\1(?!0000)\d{4}$
, но я хочу, чтобы не блокировать любые 9 цифр номера, которые имеют слова «порядка» или «номер маршрута» перед ними.
Это регулярное выражение - беспорядок. Я также не понимаю проблему. Я бы начал с упрощения регулярного выражения следующим образом: http://pastebin.com/TuPB49uj – HamZa
Этот вопрос будет легче ответить, если вы: (1) создали [минимальное тестовое регулярное выражение] (http://stackoverflow.com/ help/mcve), это намного проще, чем тот, который у вас есть в настоящее время, (2) опубликуйте несколько примеров с этим регулярным выражением того, что вы хотите и не хотите соответствовать (вместе с результатами, которые вы на самом деле получаете), (3) post это регулярное выражение с примерами на [онлайн-тесте регулярных выражений] (https://www.google.ch/search?q=regex%20tester) и включить ссылку на это в вопросе (но регулярное выражение и примеры должны быть в вопрос сам по себе). – Dukeling
@HamZa: вы уверены, что '[1-9] {2}' всегда совпадает с '(?! 00) [0-9] {2}'? –