Я пытаюсь сделать положительное/отрицательное (только) сопоставление кредитных карт. Мне нужно определить, есть ли дополнительные конечные числа (только).Совпадение кредитной карточки с регулярным выражением с использованием номера трейдера
Я могу иметь любую произвольную строку, но только вызывать совпадение, если есть более двух последовательных чисел (с любым пробелом) ПОСЛЕ количества.
Я работал над уточнением этой тонны, основанной на наших потребностях, немного, я сделал это постепенно в течение нескольких месяцев. Вы можете игнорировать большую часть сложности (это просто точное сопоставление цифр для кредитных карт). Я просто пытаюсь справиться с дополнительными конечными числами. Regex настоящее время я использую здесь:
\b(?<!\d.)(3[47]\d{2}([ -]?)(?!(\d)\3{5}|123456|234567|345678|5454545)\d{6}\2(?!(\d)\4{4})\d{5}|((4\d|5[1-5]|65)\d{2}|6011)([ -]?)(?!(\d)\8{3}|1234|3456|5678)\d{4}\7(?!(\d)\9{3})\d{4}\7\d{4})(\b|\s)
Следующие матчи уже успешно совпадают:
some 4270446050075048
4270-4460-5007-5048
this:4270 4460 5007 5048.
4270 4460 5007 5048 4/20
4270 4460 5007 5048 what
4270 4460 5007 5048
Следующая успешно НЕ совпадают:
42704460500750a8
4270
4270 4460 5007 504
42811293test123
Однако это один становится все меня , Есть куча файлов с таким типом длинного числового шаблона, который продолжает попадать. Я хотел бы обновить включенную регулярное выражение, чтобы устранить действительное совпадение, если и только если за ней следует, по крайней мере, более 3-х чисел, например, в следующих примерах:
4270 4460 5007 5048 1234 5083 5095 5179 5157 5219 5187 5095
4270 4460 5007 5048 123123115132124151231
4270 4460 5007 5048123
42704460500750481234
Но следующий ДОЛЖНА ПРОДОЛЖИТЬ, чтобы создать матч (в связи с истечением даты нотация):
4270 4460 5007 5048 12
Я попытался следующие, как отрицательного предпросмотра, но может быть недоразумение, что мне нужно сделать:
(?![\d][^\d][^\d])
Это RESU в некоторых странных изменениях в совпадениях, которые я не совсем понял (только согласованные строки без конечного пространства или с одним конечным пространством, но с любым количеством цифр). Я построил это в разделах, и я не уверен, как несколько функций lookaside взаимодействуют друг с другом, что может быть частью проблемы.
Если вы заинтересованы в попытке его, предварительно построенной обкатки для этого здесь:
https://regex101.com/r/oE1rZ1/2
Спасибо!
Я не понимаю. Пожалуйста, будьте более конкретными. Какой шаблон вы используете. Что это такое (или не совпадение)? Что вы ожидаете от него? –
Если вам нужно совпадение с отказом на основании чего-то после него, вам нужно использовать отрицательный результат. См. Http://www.regular-expressions.info/lookaround.html – Barmar
Я обновил его, надеюсь, добавит ясности –