如何在字符串中搜索包括 \n by re.search

how to search in a string includes \n by re.search

我正在使用 python 3.8。我有一个字符串如下:

s="V    n :=
v1  5 ;"

我想获取“:=”和“;”之间的字符串(其中包括换行符 (\n))。我 运行 以下命令:

x = re.search(r'n :=(.*?);', s).group(1)

但我收到以下错误:

AttributeError: 'NoneType' object has no attribute 'group'

这意味着它找不到字符串。当我从输入字符串中删除换行符 (\n) 时:

s="V    n := v1 5 ;"

运行正常,没有错误! 我该如何解决这个问题?

您希望 re.DOTALL 标志更改为“.”包括“\n”:

x = re.search(r'n :=(.*?);', s, flags=re.DOTALL).group(1)

试试这个:

search(r":=\s*(.*);", s).group(1)

只需使用\s来匹配换行符和空格。不需要额外的标志。