如何在不使用DOTALL的情况下匹配任意内容?

5 投票
2 回答
604 浏览
提问于 2025-04-18 17:24

我需要一个正则表达式,它既能使用默认的点号(这个点号是不会匹配换行符的),又能使用re.DOTALL的点号(这个点号可以匹配换行符)。在我的正则表达式中,我需要多个默认的点号和仅仅一个可以匹配换行符的点号。不过,因为我需要一个点号来匹配换行符,所以我不得不使用DOTALL,同时还得多次使用[^\n]来实现默认的“匹配任何不是换行符的东西”的效果。

我想去掉DOTALL,把那些[^\n]替换成.,并且在我需要的地方用一种更复杂的方式来匹配“包括换行符的任何东西”。

所以我的问题是:在不使用DOTALL的情况下,怎样写正则表达式才能匹配“包括换行符的任何东西”?

2 个回答

7

如何在不使用DOTALL的情况下匹配“任何内容,包括换行符”?

你可以试试使用字符类或字符集

[\s\S]+
5

我总是使用 r"[\s\S]" 这个表达式,它可以匹配所有的空白字符和非空白字符,也就是说,所有的东西都能匹配上。

撰写回答