正则表达式在引号之间提取数据

时间:2017-09-03 19:33:49

标签: python regex

标题中的字符串为'="24digit number"',我想在""之间提取数字(例如:="000021484123647598423458"应该得到'000021484123647598423458')。

有些答案可以解答如何在"之间获取数据,但在我的情况下,我还需要确认="是否存在而没有捕获(还有其他"\d{24}"个字符串,但是它是用于其他东西)。

我无法修改这些答案以获得我需要的东西。

我的最新正则表达式为((?<=\")\d{24}(?=\")),字符串为="000021484123647598423458"

更新:我想我会解决模式r'^(?:\=\")(\d{24})(?:\")',因为我只想捕获数字字符。

word = '="000021484123647598423458"' pattern = r'^(?:\=\")(\d{24})(?:\")' match = re.findall(pattern, word)[0]

谢谢大家的建议。

2 个答案:

答案 0 :(得分:2)

你可以这样:

=(['"])(\d{24})\1

a demo on regex101.com

<小时/> 在Python

import re

string = '="000021484123647598423458"'

rx = re.compile(r'''=(['"])(\d{24})\1''')
print(rx.search(string).group(2))
# 000021484123647598423458

答案 1 :(得分:0)

以下任何一种作品:

>>> st = '="000021484123647598423458"'
>>> import re 
>>> re.findall(r'".*\d+.*"',st)
['"000021484123647598423458"']

>>> re.findall(r'".*\d{24}.*"',st)
['"000021484123647598423458"']

>>> re.findall(r'"\d{24}"',st)
['"000021484123647598423458"']