假设我有一个字符串
str = "some_var = \n {'LOL'}"
我想re在它上面运行 -search ......
re.search(r'some_var =([.\s]+)\}', str)
据我所知,我应该搜索任何字符(包括换行符),直到}在字符串中找到 a 并将它和它之间的所有内容分组=。
为什么我会得到None这样的结果?
因为.不匹配任何字符,包括换行符——实际上它匹配除换行符之外的任何字符。看:
https://docs.python.org/3/library/re.html
你必须使用DOTALL模式。
我不确定你的意图是什么[.\s]。它看起来像“任何字符加空格”。但是空格是一个字符,所以你可以说“任何字符”。我认为这可能就足够了:
re.search(r'some_var =(.+)\}', str, flags=re.DOTALL)
PSstr是内置的。不要调用变量str。