В течение довольно длительного времени мне удавалось пробираться по регулярным выражениям, но, увы, я не могу помочь нуждающемуся другу.
Мой "друг" пытается сопоставить все строки в текстовом файле, которые соответствуют следующим критериям:
- Только 7-10-значный номер (0123456 или 0123456789)
- Только 7-10-значный номер, затем тире, затем еще две цифры (0123456-01 или 0123456789-01)
- Соответствует любому из вышеперечисленных , за исключением , где слова Код / код или Пароль / код доступа перед совпадающими числами (например, «Код доступа: 16434629» или «Пароль 5253443» -12" )
- РЕДАКТИРОВАТЬ : нужны только совпадающие числа, ничего больше.
Вот самое неприятное регулярное выражение, которое я когда-либо видел, чтобы "он" дал мне:
^(?=.*?[^=/%:]\b\d{7,10}((\d?\d?)|(-\d\d))?\b)((?!Passcode|passcode|Code|code).)*$
...
Вопрос : Есть ли способ использовать короткое регулярное выражение, чтобы найти все строки, которые соответствуют вышеуказанным критериям?
Предположим, PCRE. Мой друг заранее благодарит тебя. ; -)
Кстати, я не смог найти другие вопросы, перечисленные в stackoverflow.com или superuser.com, которые могут точно ответить на этот вопрос.
РЕДАКТИРОВАТЬ : Я использую Kodos Python Regex Debugger для проверки и тестирования регулярных выражений.