Подстроки захвата Python - PullRequest
0 голосов
/ 07 декабря 2018

Пожалуйста, извините за мое невежество.Я понимаю, что это очень тривиальный вопрос, но у меня много проблем с регулярным выражением.

У меня есть такая строка:

Secret seed: SAI4OILKV6QNC24OMIVB4WWEBL7KQRV6L4CXOO5MSY6ONRXYPU5BYW6B
Public: GDOTL2NTFQ4XC3NDQLD33HNFS7FQBZ5CWVDIEQJNAKX2GRX5VH5CVVZA

Я хочу получить секретный ключи открытый ключ, поэтому SAI4OILKV6QNC24OMIVB4WWEBL7KQRV6L4CXOO5MSY6ONRXYPU5BYW6B и GDOTL2NTFQ4XC3NDQLD33HNFS7FQBZ5CWVDIEQJNAKX2GRX5VH5CVVZA в этом случае.Какое регулярное выражение следует использовать, чтобы захватить это?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вы можете попробовать это

Это будет соответствовать любой строке между границей слова, которой предшествует ':'

:\s*?\b(.*)\b

Объяснение

  • : - соответствует символу :.
  • `\ s?- Совпадает с любым пробелом, если есть.
  • \b - Граница слова.
  • (. *) - Совпадает с любой вещью ноль или более раз, кроме новой строки.

Демо

0 голосов
/ 07 декабря 2018

Семена, кажется, имеют фиксированную длину из 56 символов , составленную из заглавных букв и чисел , поэтому мыможет создать regex для соответствия этому типу шаблона, например:

text = """
Secret seed: SAI4OILKV6QNC24OMIVB4WWEBL7KQRV6L4CXOO5MSY6ONRXYPU5BYW6B
Public: GDOTL2NTFQ4XC3NDQLD33HNFS7FQBZ5CWVDIEQJNAKX2GRX5VH5CVVZA
"""
seeds = re.findall(r"\b[\dA-Z]{56}\b", text)
print(seeds)
# ['SAI4OILKV6QNC24OMIVB4WWEBL7KQRV6L4CXOO5MSY6ONRXYPU5BYW6B', 'GDOTL2NTFQ4XC3NDQLD33HNFS7FQBZ5CWVDIEQJNAKX2GRX5VH5CVVZA']

Python Demo :
https://www.jdoodle.com/embed/v0/Q64

Regex Demo :
https://regex101.com/r/7MKWEE/2


Regex Объяснение: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...