re 在 Linux 匹配中文失败,正确的用法是什么?

在做爬虫的时候,遇到一段中文,想要将 声明:全集TXT小说本站会立即删除您认为侵权的作品部分用re.sub删除。可是发现无法匹配中文,最小匹配如下

import re

string = """守护自己世界的英雄们,在顶着炮火付出无数牺牲之后,千辛万苦冲破灵魂奴隶军团与召唤使魔军团的双重防御,他们终于成功来到巫塔之上黑巫师的面前。然而,红袍巫师面对冲上来的英雄们微微一笑,伸手入衣内,抽出两柄比攻城锤还大的巨剑国术拳师,伴你一同融入巫师世界。声明:全集TXT小说\n《黑巫师朱鹏》\n由书友上传至\n八零电子书\n,该作品内容版权归原作者、出版社所有。如原作者、出版社认为本站行为侵权,请联系本站,本站会立即删除您认为侵权的作品。"""
pattern = '声明.*?侵权的作品'
print(re.findall(pattern, string))
# 输出结果 []
print(re.sub(r'声明.*?侵权的作品', '', string))
# 输出结果为 string 原文
string = 'abcdefgabcdefg'
pattern = 'a.*?c'
print(re.findall(pattern, string))
# 输出结果 ['abc', 'abc']
print(re.sub(r'a.*?c', '', string))
# 输出结果 defgdefg

正确的用法是什么?

re
chowjiawei
最佳答案
import re

string = """守护自己世界的英雄们,在顶着炮火付出无数牺牲之后,千辛万苦冲破灵魂奴隶军团与召唤使魔军团的双重防御,他们终于成功来到巫塔之上黑巫师的面前。然而,红袍巫师面对冲上来的英雄们微微一笑,伸手入衣内,抽出两柄比攻城锤还大的巨剑国术拳师,伴你一同融入巫师世界。声明:全集TXT小说
《黑巫师朱鹏》
由书友上传至
八零电子书
,该作品内容版权归原作者、出版社所有。如原作者、出版社认为本站行为侵权,请联系本站,本站会立即删除您认为侵权的作品。"""

# 使用 re.DOTALL 标志让 . 匹配包括换行符在内的所有字符
pattern = r'声明.*?侵权的作品'
matches = re.findall(pattern, string, flags=re.DOTALL)
print(matches)
# 输出结果: ['声明:全集TXT小说\n《黑巫师朱鹏》\n由书友上传至\n八零电子书\n,该作品内容版权归原作者、出版社所有。如原作者、出版社认为本站行为侵权,请联系本站,本站会立即删除您认为侵权的作品']

# 使用 re.sub 删除匹配的部分
cleaned_string = re.sub(r'声明.*?侵权的作品', '', string, flags=re.DOTALL)
print(cleaned_string)
# 输出结果为删除声明部分后的字符串
2个月前 评论
讨论数量: 1
chowjiawei
import re

string = """守护自己世界的英雄们,在顶着炮火付出无数牺牲之后,千辛万苦冲破灵魂奴隶军团与召唤使魔军团的双重防御,他们终于成功来到巫塔之上黑巫师的面前。然而,红袍巫师面对冲上来的英雄们微微一笑,伸手入衣内,抽出两柄比攻城锤还大的巨剑国术拳师,伴你一同融入巫师世界。声明:全集TXT小说
《黑巫师朱鹏》
由书友上传至
八零电子书
,该作品内容版权归原作者、出版社所有。如原作者、出版社认为本站行为侵权,请联系本站,本站会立即删除您认为侵权的作品。"""

# 使用 re.DOTALL 标志让 . 匹配包括换行符在内的所有字符
pattern = r'声明.*?侵权的作品'
matches = re.findall(pattern, string, flags=re.DOTALL)
print(matches)
# 输出结果: ['声明:全集TXT小说\n《黑巫师朱鹏》\n由书友上传至\n八零电子书\n,该作品内容版权归原作者、出版社所有。如原作者、出版社认为本站行为侵权,请联系本站,本站会立即删除您认为侵权的作品']

# 使用 re.sub 删除匹配的部分
cleaned_string = re.sub(r'声明.*?侵权的作品', '', string, flags=re.DOTALL)
print(cleaned_string)
# 输出结果为删除声明部分后的字符串
2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!