选择字符\x02和\x0b之间的子字符串

2024-09-20 03:44:26 发布

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

我有一根像这样的绳子:

a = '\x02 ciao \n\x0b sdjfip \n\x03 dsfd\ \x02 bella fasfs \n\x0b\x03\n'

我的目标是提取\x02和{}中包含的子字符串,它们是:

  • ciao \n
  • bella fasfs \n

输出子字符串应该存储在一个列表中。在

到目前为止,我尝试使用以下代码行

^{pr2}$

但是变量result是空的。在

我该怎么做才能得到可能的结果?在

注意:a实际上是一个泛型字符串,因此它可以包含2个以上感兴趣的子字符串。在


Tags: 字符串代码目标列表resultx03x02绳子
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)

输出:

^{pr2}$

您可以使用以下语法:

re.findall("\\x02(.*?)\\x0b", a, re.I | re.M | re.S)

您得到空集是因为\n是特殊字符,并且在搜索模式中它默认不包含在.中。在

相关问题 更多 >