У меня есть файл с кучей различных кодов ZIP:Regex чтобы соответствовать ZIP код без пунктуации
12345
12345-6789
1234567890
12345:6789
12345-7890
12:1234678
Я хочу соответствовать только по кодам, которые имеют формат 12345
или 12345-6789
, но игнорировать все другие формы.
У меня есть регулярное выражение, как:
grep -E '\<[0-9]{5}\>[^[:punct:]]|\<[0-9]{5}\>-[0-9]{4}' samplefile
Он совпадает с 12345-6789
, потому что «или» положение соответствует по этому конкретному одному. Я смущен, почему он не будет совпадать с первым 12345
, так как мое выражение должно сказать «совпадение по 5 номерам, но игнорировать любую пунктуацию».
Имеет смысл. Я пытался сделать это наоборот, вместо того, чтобы идти с самого начала. Оценил. – Paul