我有一个看起来像这样的字符串:
a = '\x02 ciao \n\x0b sdjfip \n\x03 dsfd\ \x02 bella fasfs \n\x0b\x03\n'
我的目标是提取包含在 \x02 和 x0b 中的子字符串,它们是:
再见\nbella fasfs\n
输出的子字符串应该存储在一个列表中。
到目前为止,我尝试使用以下代码行
import re
result = re.search('\x02(.*?)\x0b', a)
但是变量 result 是空的。
我应该怎么做才能得到可能的结果?
注意:a 实际上是一个通用字符串,因此它可以包含超过 2 个感兴趣的子字符串。
请您参考如下方法:
问题是换行符,而不是其他字符。启用 re.DOTALL 以匹配换行符:
If the DOTALL flag has been specified, this matches any character including a newline.
此外,要找到所有的字符串(不仅是第一个匹配对象,你不感兴趣),不要使用re.search,而是使用re.findall
result = re.findall('\x02(.*?)\x0b', a,re.DOTALL)
输出:
[' ciao \n', ' bella fasfs \n']
