RyanHazmburk
2021-04-13T20:44:24+00:00
众所周知,下载的txt小说都会被插入一些广告,那么有什么办法删除这些广告呢
[img]https://img.nga.178.com/attachments/mon_202104/21/ekQ16v-7pulK2nT1kSa2-6q.jpg.medium.jpg[/img]
这些是我在一本小说里复制的广告,而根据简单的排列组合,保守一点,15种特殊符号里取4种,就有30000+种排列组合,也就是说图片中的广告有3万多个,普通的查找替换,也得进行3万多次,可以说,不是人能做到的
所以来书院求大佬给点出路,我平时也用一些常用的通配符,但是遇到一句广告里面,含有多个问号的类型,我就没法子了
图片里是我遇到的,最难的去广告例子了,求求了,别说看正版和换资源,刘备哪来的正版,换资源也做不到,我已经穷尽自己的搜索能力了,找不到别的无广告资源
[img]https://img.nga.178.com/attachments/mon_202104/21/ekQ16v-4fgvK2bT3cSsg-it.jpg.medium.jpg[/img]
我这就开始学正则表达式,根据图片中的类型,有没有大佬给点匹配的代码
[quote][pid=509623844,26418047,1]Reply[/pid] Post by [uid=38342564]SanYek[/uid] (2021-04-21 05:41):
第一版主??楼主你这小说怕不是刘备嗷[/quote]就是刘备,我现在开始学正则表达式,争取把里面的广告都去掉,然后重新排列章节
拷到word里查找删除就可以了吧[s:ac:擦汗]
不相信正则,也不喜欢正则。
简单的就查找替换。
如果加入混扰算法的,就要破算法。每一章节,随机地引进随机量的,破不了,没法完美去除。
你能把例子贴成文字贴出来吗
如果会被吞楼可以先base64一下
[quote][pid=509623763,26418047,1]Reply[/pid] Post by [uid=39290732]艾瑞格[/uid] (2021-04-21 05:38):
[img]https://img.nga.178.com/attachments/mon_202104/21/ekQ16v-4fgvK2bT3cSsg-it.jpg.medium.jpg[/img]
我这就开始学正则表达式,根据图片中的类型,有没有大佬给点匹配的代码[/quote]果然GHS是第一生产力[s:ac:哭笑]
[quote][pid=509624087,26418047,1]Reply[/pid] Post by [uid=43183903]麋鹿的爱丽丝[/uid] (2021-04-21 05:54):
拷到word里查找删除就可以了吧[s:ac:擦汗][/quote]3万多种,每种都不一样,得拷3万遍,不现实啊
[quote][pid=509625561,26418047,1]Reply[/pid] Post by [uid=39290732]艾瑞格[/uid] (2021-04-21 06:40):
如果放到python里面,我百度也可以查到解决的方法,确实不是很难的正则,读到list里面,然后一个个匹配关键词就可以了,现在麻烦的是更难识别的广告,在split时会和正文在一起......[/quote]发个链接或文件吧
一般来说纯正则方案是不用split的
混合的代码+正则的话也有检测方法
[quote][pid=509624163,26418047,1]Reply[/pid] Post by [uid=60865219]巫师喵[/uid] (2021-04-21 05:57):
你能把例子贴成文字贴出来吗
如果会被吞楼可以先base64一下[/quote]寻回地址百度第一ban竹?合社区?
最?新网2址百度第一ban竹合社区
¨寻回2网?址搜¨第一?版主?合社|区
2寻回网址搜第?一版主?合社|区
找回网址¨请搜索第?一ban竹??合社?区
2寻回网址搜第?一版主?合社|区
寻回?地址?百度第一ban竹?合社2区
寻回2网址百度?第一ban竹2合社区
寻回地址搜?第一ban?主合3社¨区
寻?回地址百度第一ban竹合社区
最新网址搜第一ban?主?合社区
?最新|网?址?搜?第一版主合?社区
寻回地址搜?第一ban?主3?合社区
寻回地址搜¨第一ban竹2合社区
不知道base64什么意思,其实这只是比较显眼的一类,是单独的一行,还有的是嵌在正文里面,或者段落结尾,不仔细看都看不出来
看起来不需要很复杂的正则
基本的解法就是寻.?回.?地.?址.*?合.?社.?区
把前面四个字改一改多执行几次即可
比较困难的点在于污染文字前后的可能符号,如果可以尝试做统一去除[^A-Za-z0-9\u4e00-\u9fa5]?寻.?回.?地.?址.*?合.?社.?区[^A-Za-z0-9\u4e00-\u9fa5]?
不过有误删风险,最好还是有源文件来观察污染符号
如果需要进一步的处理就需要多几个例子或者源文件了
看你的例子单个正则是清不干净的,否则就写得非常长了
与之相反,你可以考虑全文搜索某些关键词,例如说网址 百度 社区,然后把上下文一小段提取出来判断广告程度并删除
这样的优点是就算其中插了别的不同的关键词和不同规律甚至缺字漏字同音字拼音火星文的版本都能高几率识别
如果真的想要纯正则:
找回寻回最新
地址网址
百度搜
第一
ban版主竹
合社区
Reply to [pid=509624301,26418047,1]Reply[/pid] Post by [uid=39290732]艾瑞格[/uid] (2021-04-21 06:03)
[img]https://img.nga.178.com/attachments/mon_202104/21/ekQ16v-7d02K20T3cSwd-de.jpg[/img]
[code]
[^A-Za-z\s\u4e00-\u9fa5]?(?:寻.?回|找.?回|最.?新).?(?:地.?址|网.?址).*?合.?社.?区[^A-Za-z\s\u4e00-\u9fa5]?
[code]
[quote][pid=509624370,26418047,1]Reply[/pid] Post by [uid=60865219]巫师喵[/uid] (2021-04-21 06:06):
看起来不需要很复杂的正则
基本的解法就是寻.?回.?地.?址.*?合.?社.?区
把前面四个字改一改多执行几次即可
比较困难的点在于污染文字前后的可能符号,如果可以尝试做统一去除[^A-Za-z0-9\u4e00-\u9fa5]?寻.?回.?地.?址.*?合.?社.?区[^A-Za-z0-9\u4e00-\u9fa5]?
不过有误删风险,最好还是有源文件来观察污染符号
如果需要进一步的处理就需要多几个例子或者源文件了[/quote]如果放到python里面,我百度也可以查到解决的方法,确实不是很难的正则,读到list里面,然后一个个匹配关键词就可以了,现在麻烦的是更难识别的广告,在split时会和正文在一起,这个有什么建议不