python正则表达式:如果有多子字符串,如何查找字符串?

2024-04-20 15:01:22 发布

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

我想使用正则表达式为下面的字符串找到<b></b>之间的字母

s = "start<b>A</b><b>B</b><b>C</b><b>D</b>End"

期望的结果是A B C D

我试过这些密码

for i in range(4):
    r = re.search(r'.<b>.</b>.' ,"", s)
    print r

我还尝试了许多其他方法。但它们都不起作用

请不要给我减号,我知道这是一个非常初级的问题。谢谢你的帮助


Tags: 方法字符串inre密码forsearch字母
3条回答

下面是一个与

>>> import re
>>> p = re.compile(r'<b>(.+?)</b>')
>>> p.findall("start<b>A</b><b>B</b><b>C</b><b>D</b>End")
['A', 'B', 'C', 'D']

使用re.findall查找包含<b>、中间字符和</b>的正则表达式的所有匹配项:

import re
s = "start<b>A</b><b>B</b><b>C</b><b>D</b>End"

for match in re.findall(r'<b>(.*?)</b>', s):
    print match,

正则表达式中的括号用于创建一个,告诉findall,您对<b></b>之间的内容感兴趣

正则表达式的.*?部分表示匹配零个或多个字符,首选满足表达式的最小字符串

使用re.findall函数

>>> m = re.findall(r'<b>(.+?)</b>', s)
>>> m
['A', 'B', 'C', 'D']

>>> ' '.join(m)
'A B C D'

相关问题 更多 >