查找两个子字符串之间的所有字符串

2024-09-25 10:35:01 发布

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

我以以下字符串为例:

string = "@@ cat $$ @@dog$^"

我想提取在“@@”和“$”之间锁定的所有stringa,因此输出将是:

^{pr2}$

我只知道如何提取第一次出现的情况:

import re
r = re.compile('@@(.*?)$')
m = r.search(string)
if m:
   result_str = m.group(1) 

欢迎就如何抓住它们提出想法和建议。在


Tags: 字符串importresearchstringifgroup情况
1条回答
网友
1楼 · 发布于 2024-09-25 10:35:01

使用^{}获取子字符串的每次出现。$在正则表达式中被认为是一个特殊字符,意思是“字符串的结尾”锚点,因此需要转义$来匹配文本字符。在

>>> import re
>>> s = '@@ cat $$ @@dog$^'
>>> re.findall(r'@@(.*?)\$', s)
[' cat ', 'dog']

要删除前导空格和尾随空格,只需在捕获组之外进行匹配即可。在

^{pr2}$

另外,如果上下文有可能跨越换行符,您可以考虑使用否定。在

>>> re.findall(r'@@\s*([^$]*)\s*\$', s)

相关问题 更多 >