正则表达式模式提取子串

2024-10-08 19:30:48 发布

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

mystring="q1)whatq2)whenq3)where"

想要["q1)what", "q2)when", "q3)where"]

我的方法是找到q\d+\)模式,然后移动,直到再次找到该模式并停止。但我停不下来。你知道吗

我做了req_list = re.compile("q\d+\)[*]\q\d+\)").split(mystring)

但这给了整个弦。 我该怎么做?你知道吗


Tags: 方法re模式wherewhatreqlistwhen
1条回答
网友
1楼 · 发布于 2024-10-08 19:30:48

您可以尝试使用re.findall函数的以下代码

>>> import re
>>> s = "q1)whatq2)whenq3)where"
>>> m = re.findall(r'q\d+\)(?:(?!q\d+).)*', s)
>>> m
['q1)what', 'q2)when', 'q3)where']

说明:

  • q\d+\)匹配格式为q的字符串,后跟一个或多个数字,再后跟)符号。你知道吗
  • (?:(?!q\d+).)*与任何不在q\d+零次或多次的字符匹配的负向前看。你知道吗

相关问题 更多 >

    热门问题