python正则表达式用于查找两个字符串之间的值

python正则表达式用于查找两个字符串之间的值,python,regex,string,Python,Regex,String,我有一个字符串:a='*1357*01234567890123456789012345678901234567890123456789*2468*' 我想找到一个介于1357和2468之间的值,即0123456789012345678901234567890123456789 我想使用正则表达式或更简单的方法来提取值 我尝试了re.findallr'1357\.*?2468',a,但我不知道哪里做错了。这里有几个问题: 你是在逃避现实。1357年之后,这意味着文字,这不是你想要的 当然,您没有处

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

我想找到一个介于1357和2468之间的值,即0123456789012345678901234567890123456789

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


我尝试了re.findallr'1357\.*?2468',a,但我不知道哪里做错了。

这里有几个问题:

你是在逃避现实。1357年之后,这意味着文字,这不是你想要的 当然,您没有处理需要转义的*字符。 长话短说:

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

这里有几个问题:

你是在逃避现实。1357年之后,这意味着文字,这不是你想要的 当然,您没有处理需要转义的*字符。 长话短说:

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

如果您希望使用更通用或更灵活的方法,可以使用以下方法:

re.findall(r'\*\d+\*(\d+)\*\d+\*',a)
这将为您提供相同的输出:

['0123456789012345678901234567890123456789']

但它的优点是,它提供了由*包围的任何一组数值之间的值。例如,这将适用于您的字符串,但也适用于字符串a=*0101*01234567890123456789012345678901234567890123456789*0*,等等。

如果您希望使用更通用或更灵活的方法,可以使用以下方法:

re.findall(r'\*\d+\*(\d+)\*\d+\*',a)
这将为您提供相同的输出:

['0123456789012345678901234567890123456789']
但它的优点是,它提供了由*包围的任何一组数值之间的值。例如,这将适用于您的字符串,但也适用于字符串a=*0101*01234567890123456789012345678901234567890123456789*0*,等等