Python捕获子字符串

时间:2018-12-07 05:36:46

标签: python regex

请原谅我的无知。我知道这是一个非常琐碎的问题,但是正则表达式存在很多问题。

我有一个像这样的字符串:

Secret seed: SAI4OILKV6QNC24OMIVB4WWEBL7KQRV6L4CXOO5MSY6ONRXYPU5BYW6B
Public: GDOTL2NTFQ4XC3NDQLD33HNFS7FQBZ5CWVDIEQJNAKX2GRX5VH5CVVZA

我想捕获秘密密钥和公共密钥,因此在这种情况下为SAI4OILKV6QNC24OMIVB4WWEBL7KQRV6L4CXOO5MSY6ONRXYPU5BYW6BGDOTL2NTFQ4XC3NDQLD33HNFS7FQBZ5CWVDIEQJNAKX2GRX5VH5CVVZA。 regex应该用来捕获它的是什么?

2 个答案:

答案 0 :(得分:1)

种子似乎具有 56个字符固定长度,由大写字母数字组成,这样,我们可以构造一个regex来匹配这种类型的模式,例如:

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

Python演示
 https://www.jdoodle.com/embed/v0/Q64

正则表达式演示
  https://regex101.com/r/7MKWEE/2


正则表达式说明enter image description here

答案 1 :(得分:1)

您可以尝试

它将匹配单词边界之间以':'开头的任何字符串

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

说明

  • :-匹配字符:
  • `\ s? -匹配任何空格。
  • \b-单词边界。
  • (。*)-匹配零个或多个时间的任何事物,除了换行符。

Demo