pythonregex:提取两个值之间的字符串,而不包含模式

2024-06-28 20:04:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根绳子:

a="12cdanfaw3i8hanjwofaef56ghah398hafadsf12cds;dkh38hfasdf56ghaldkshf12cdasdiuhf93f2asdf56gh"

我试图提取12cd和{}之间的字符串。这些值将是anfaw3i8hanjwofaefs;dkh38hfasdfasdiuhf93f2asdf

我拥有的regex是re.findall(r'12cd.*56gh', a)。在

但是模式包含在输出中。在

如何编写regex使其不包含在输出中?在

谢谢


Tags: 字符串re模式regex绳子findalldkh38hfasdf56ghaldkshf12cdasdiuhf93f2asdf56ghasdiuhf93f2asdf
1条回答
网友
1楼 · 发布于 2024-06-28 20:04:49

您需要一个非贪心的regex来获得所有3个匹配项,并且还需要使用一个匹配组来不包括模式,所以使用12cd(.*?)56gh

import re
print(re.findall(r'12cd(.*?)56gh', '12cdanfaw3i8hanjwofaef56ghah398hafadsf12cds;dkh38hfasdf56ghaldkshf12cdasdiuhf93f2asdf56gh'))

输出:

^{pr2}$

解释

12cd              // matches 12cd
    (             // matching group 1
      .*?         // matches any character between 0 and unlimited times, lazy
    )             
56gh              // matches 56gh

相关问题 更多 >