在贴吧、论坛等地方出于各种原因发度盘链接容易被吞,于是有很多常见的防和谐套路:比如说“链接中加’删除中文‘”、“.“替换为’点‘”、”不加前缀“等……
我查了下这功能也没人写,估计都是手动处理忍忍就完了。索性我写一个。
以后要是会开发浏览器插件或看看有没有插件可以集成,我就整个浏览器插件(立flag不负责~)
1.去除中文和空格:
import re
#去除中文
def do_unchinese(file):
pattern = re.compile(r'[\u4e00-\u9fa5]')
#pattern = re.compile(r'[^\u4e00-\u9fa5]')#这句是去除非中文
unchinese = re.sub(pattern,"",file)
return unchinese
#去除空格
def do_unblank(file):
return file.replace(" ", "")
if __name__ == "__main__":
line = "ht tps ://blog.cs dn.net/ sinat _273 82047"
print("原文:")
print(line)
print("保留非中文:")
print(do_unchinese(line))
print("保留非中文+删除空格:")
print(do_unblank(do_unchinese(line)))
效果先不截图了,下面综合的截图包括这个功能了
2.去除中文和空格外,再加上”点“替换、检测并加前缀的功能:
import re
#去除中文
def do_unchinese(file):
pattern = re.compile(r'[\u4e00-\u9fa5]')
#pattern = re.compile(r'[^\u4e00-\u9fa5]')#去除非中文
unchinese = re.sub(pattern,"",file)
return unchinese
#去除空格
def do_unblank(file):
return file.replace(" ", "")
#替换中文“点”为"."
def do_dot(file):
return file.replace("点", ".")
#处理前缀
def do_prefix(file):
#有前缀
if "pan.baidu.com/s/" in file:
return file
#有部分前缀,或者不干净的前缀(正则表达式处理)
if "/s/" in file:
return re.sub(".*/s/", "pan.baidu.com/s/", file)#“.*”用于匹配任意字符
#没有前缀
else:
return "pan.baidu.com/s/" + file
if __name__ == "__main__":
line = "点com/s防/1BS FGM和byQk 谐1F q删g除 o4z中L5 文WX4A"
line=do_unchinese(line)
line=do_unblank(line)
line=do_dot(line)
line=do_prefix(line)#前缀,一定要在最后处理,防止空格和中文的干扰
print("处理结果:")
print(line)
效果(这是比较丧心病狂地加东西了):
参考:
Python中常见字符串去除空格的方法总结
python 去除非中文字符
Python判断一个字符串是否包含子串的几种方法
python 字符串替换功能 string.replace()可以用正则表达式,更优雅
https://www.runoob.com/python/python-reg-expressions.html
另外,看一篇百度经验说webbb.fun加前缀很好用,我还没试过。