gpt4 book ai didi

python re.search 不适用于多行字符串

转载 作者:太空宇宙 更新时间:2023-11-04 07:08:37 26 4
gpt4 key购买 nike

我在字符串中加载了这个文件:

// some preceding stuff
static char header_data[] = {
1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,
1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,
1,1,0,1,0,1,0,1,1,0,1,0,1,0,1,1,
1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,1,
0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,
1,0,0,0,1,1,0,1,1,1,1,1,0,1,1,1,
0,1,0,0,0,1,0,0,1,1,1,1,0,0,0,0,
0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,
0,1,1,1,0,0,0,0,0,0,1,1,0,1,1,0,
0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,
1,1,1,0,1,1,0,0,1,1,0,0,0,1,1,1,
1,1,0,1,1,1,1,1,1,1,1,0,0,0,1,1,
1,0,1,1,1,0,0,1,1,0,0,0,0,0,1,1,
1,1,0,1,0,1,0,1,1,1,1,0,0,0,0,1,
1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,1,
1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1
};

我只想获取包含 1 和 0 的 block ,然后以某种方式对其进行处理。

我导入了 re,并尝试了:

In [11]: re.search('static char header_data(.*);', src, flags=re.M)

In [12]: re.findall('static char header_data(.*);', src, flags=re.M)
Out[12]: []

为什么它不匹配任何东西?如何解决这个问题? (是python3)

最佳答案

您需要使用 re.S 标志,而不是 re.M

  • re.M (re.MULTILINE) 控制 ^$ 的行为(它们是否匹配在整个字符串或每一行的开头/结尾)。
  • re.S (re.DOTALL) 控制 . 的行为,当您想要允许点以匹配换行符。

另见 documentation .

关于python re.search 不适用于多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27250171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com