python正则表达式找到2个字符串之间的值

时间:2018-03-23 18:51:23

标签: python regex string

我有一个字符串:a = '*1357*0123456789012345678901234567890123456789*2468*'

我想在13572468之间找到0123456789012345678901234567890123456789之间的值。

我想使用正则表达式或更简单的方法来提取值。

我试过了re.findall(r'1357\.(.*?)2468', a),但我不知道我在哪里做错了。

2 个答案:

答案 0 :(得分:2)

你有几个问题:

  1. 您在.之后逃离1357,这意味着文字.,这不是您的意图
  2. 您不会处理*字符(当然,执行需要转义)。
  3. 简而言之:

    re.findall(r'1357\*(.*?)\*2468', a)
    

答案 1 :(得分:1)

如果您想要更通用或更灵活的方法,可以使用:

re.findall(r'\*\d+\*(\d+)\*\d+\*',a)

它为您提供相同的输出:

['0123456789012345678901234567890123456789']

但优点是它可以为您提供*所包围的任何数值集之间的值。例如,这适用于您的字符串,但也适用于字符串a = *0101*0123456789012345678901234567890123456789*0*等...