正则表达式 []内外的区别
r'[\s]+|[\n]+|[\r]+|[\u4e00-\u9fa5]+'
与 r'[\s\n\r\u4e00-\u9fa5]+'
之间的区别在于前者会将空白字符(包括空格、制表符、换行符等)以及中文字符都单独匹配并删除,而后者只会匹配连续的空白字符、换行符、回车符和中文字符,并将它们一起删除。
具体来说:
r'[\s]+|[\n]+|[\r]+|[\u4e00-\u9fa5]+'
中的[\s]+
匹配一个或多个连续的空白字符,[\n]+
匹配一个或多个连续的换行符,[\r]+
匹配一个或多个连续的回车符,[\u4e00-\u9fa5]+'
匹配一个或多个连续的中文字符。这意味着它会将这些字符分别删除。r'[\s\n\r\u4e00-\u9fa5]+'
中的[\s\n\r\u4e00-\u9fa5]+'
匹配一个或多个连续的空白字符、换行符、回车符或中文字符,并将它们一起删除。
因此,如果您想要删除所有这些字符,并且不关心它们是连续的还是分散的,可以使用 r'[\s\n\r\u4e00-\u9fa5]+'
,这样可以更简洁地实现目标。如果您想保留连续的空白字符或中文字符之间的间隔,可以使用 r'[\s]+|[\n]+|[\r]+|[\u4e00-\u9fa5]+'
,这将把它们分别删除。