Я пытаюсь создать регулярное выражение для чтения и определения кодов ошибок SMTP в перехваченных электронных письмах, поэтому позже я могу сопоставить эти коды с базами данных кодов ошибок SMTP и перевести с другими дружественными сообщениями.
Ответ тела из отклоненного сообщения электронной почты выглядит так (релевантна только диагностика c строка кода):
- Diagnostic-Code: smtp; 550-5.1.1 The email account that you tried to reach does...
- Diagnostic-Code: smtp; 553 5.1.2 Unknown mail server. Could not find a mail server...
- Diagnostic-Code: smtp; 550 5.5.0 Requested action not taken: mailbox unavailable...
- Diagnostic-Code: smtp;550 5.5.0 Requested action not taken: mailbox unavailable...
- Diagnostic-Code: smtp; 550-5.1.1 The email account that you tried to reach does not exist...
Это может быть в двух случаях:
1. 550 5.5.0 --> 3 digit number + space + 3 digit number only if followed by a dot.
2. 550-5.1.1 --> 3 digit number + hyphen + 3 digit number only if followed by a dot.
Я пытался с этим регулярным выражением, но не захватывает первые 3 цифры и вторые 3 цифры, за которыми следует точка
(?<!\d)(\d+\.){2}(?>\d)