繁体   English   中英

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

[英]regex to extract data between quotes

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

有一些答案可以回答如何在"之间获取数据"但就我而言,我还需要确认="存在而没有捕获(还有其他"\\d{24}"字符串,但它们用于其他用途)”。

我无法修改这些答案来获得所需的信息。

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

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

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

谢谢大家的建议。

您可以像这样:

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

参见regex101.com上的演示


Python

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

以下任何一项作品:

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

要么

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

要么

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM