2020.04.01 更新notepad++正则表达式方法
看过我帖子的人都知道我的资源里经常出现的排版问题,论坛规定所有文章每行到一定长度就要换行,这样网页版阅读体验会比较好,效果大概像这样
所以在手机上看的话就会变成这样
如果特别在意的话需要用word处理一下或者换一个屏幕大一点的手机
我本来以为这是个很少见的问题,不过既然评论区有人问到了,干脆就开贴说一下具体是怎么处理
是用c++写的,本来这活批处理最合适,然而多年不用我已经把批处理忘光了。
下面稍微介绍一下使用方法:
方法1:
直接把你要修复排版的文件拖到程序上。
最推荐的方法,简单、快捷、惊险又刺激,转换完成的文件会在拓展名前面加一个_change后缀以示区分,特别介意的同学可以手动改一下名字。
不直接替换源文件主要是怕万一把文件搞坏了有人会提着刀来砍我。
方法2:
虽然不是很理解为什么不用方法1,不过既然要追求刺激,那索性就贯彻到底咯这里也准备了别的方法
如果直接双击打开,会询问要转换的文件名称。
把文件名输在一行里,用空格分隔,只能识别拓展名为.txt或者.TXT的文件。
注意要把文件和程序放在同一个文件夹内,或者输入文件的路径。
方法3:
这个方法不是我特意做的,只是方法1的附赠品。
Win+R输入cmd或者直接搜索命令提示符,跳转到程序所在的文件夹然后把程序的名称以及文件的名称依次输入在一行里,用空格分隔。
就像这样
除了方法2的限制之外,还要注意如果路径或者文件名有空格,要用引号括起来。
这个工具的原理是统计每行的字数,把符合的行后面的段落标记删掉,所以可能把分割线和后面的东西连在一起,也可能还有其他bug,不过一般是够用了。
有同学说缺dll,补个打包了dll的版本,在别的win10机上测试应该有这两个就够用了。
本来打算用自解压整个花活,结果参数传不进去整失败了 评论区有没有会搞这个的dalao指点我一下
下面来介绍word,首先用word打开你要修改的文件,直接把文件拖到word的窗口或者在文件上右键打开方式->选择其他应用然后选择word(但我在应用列表里找不到word就很气)。如果这两种方法都不管用也可以在word里选择文件->打开->浏览,把文件类型(一般在窗口下方)切换为所有文件(*.*)就可以选中你要的文件了。
打开文件的时候如果在预览框里看到一堆乱码就换一种打开编码。
接下来打开word的搜索面板,不要告诉我你找不到搜索功能,新版本word请在顶端搜索栏搜索一下,旧版本word请Ctrl+F并选择替换选项卡
复制段落前面的空格然后把^p 替换为@@@@@。
Notepad++和word的操作就和截图里一样,为了简便起见就把这个操作写成^p →@@@@@
这里^p就是你回车打出来的那个换行符,可以直接用键盘打^p,也可以在更多->特殊格式里选择段落标记。
当然不一定要换成@@@@@,换成任意一个文章里不会出现的串都可以。
接下来是
^p→
这一步替换为空,下面那栏什么都没有
然后
@@@@@→^p^p
注意这个^p^p后面有刚刚复制的空格,但愿你没有用别的东西替换掉它
由于帖子排版的问题,我这里打不上空格
不过有的作者不喜欢在段前空格,但是大部分人会在段落中间留空行,那么就可以
^p^p→@@@@@
^p→
@@@@@→^p^p
这回^p^p后面什么都没了
最后提醒一下,修改文件有风险,搞得一团糟是常有的事,记得改前备份
就算没有备份,也别忘了你还有撤销和不保存可以用。
这里建议您忍着呢亲亲
当然还有别的办法。我们主要是需要一个标志来区分段尾和其他换行,比如说段尾都有句号引号感叹号问号之类的
那么就可以
。^p→。@@@@@
!^p→!@@@@@
?^p→?@@@@@
”^p→”@@@@@
注意不同的符号要换成不同的东西,否则就换不回去了
^p→
之后还是
。@@@@@→。^p^p
!@@@@@→!^p^p
?@@@@@→?^p^p
”@@@@@→”^p^p
也可以在这个^p^p后面加上空格。
这种方法只能作为最后的备选方案,毕竟它不但麻烦,你也不能列举所有的段尾符号,而且还会误伤没符号的段尾。
总而言之,不同的方法有不同的局限,所以忍着就完事了要根据情况选择,不过所有方法应该都能应付大部分情况。
辣鸡Clion认证忽然要过期,邮箱网关还拦截验证邮件,折腾了一晚上程序没写完
白天又有课没时间写才不是因为崩崩崩和战双都出新活动,结果又弄到半夜,小说区的帖子也咕了两天。
我记得之前看帖子有两个打300的老哥,我是来自旭日之心的一只菜鸡,虽然一个月也上线不了一次,不过要不要加个好友,这样下次匹配到我当队友你们就可以秒退
@Abyss雒邪 抽白毛出了三个s然而没有白毛
千分之八的不中概率就是我了
以上评论亮了
我看到了战双!
大佬白毛多少战了! 
@Abyss雒邪 抽白毛出了三个s然而没有白毛
千分之八的不中概率就是我了
@Lidith !!你就是传说中人均白毛中没得白毛的大佬!
@Lidith 对了,我筛选了pixiv关于战双的图包。你懂的,等我好消息
@Abyss雒邪

其实我比较期待有哪个红p画师画一下,可惜别说战双,连崩3的图我都基本没看过
国产手游里最知名的可能还是烧钱和碧蓝
@Lidith 战双的画师目前来说也算比较多了……吧,我今天筛选了1G多的插画,最后只剩下500M不到了
等等,你还打三百!
我是十二试炼的江湖人称Wu妖王!看到我记得一定要闪退! 
@Abyss雒邪 旭日之心的dministrators,这俩区估计一时半会还碰不上
我这ID的好处是就算上把被我坑了下把也记不得我叫啥了
@Abyss雒邪 等等我也打三百,我是红魔馆的额........
@朗向阳 红魔馆怕是停服以前都碰不上了
等等,你也会c++,太巧了我是软件工程的!(我才不会说我闲得无聊呢
)
我也被这个换行困扰好久了,但是你的程序因为我少了dll跑不动,自己动手替换到@@@@@→^p^p这一步又换不了
难受啊
@wtmsbb 又研究了一下,终于看懂你的思路了,先保护正常换行符,再删除单个出现的论坛换行符,最后复原正常换行符,终于成功了
@wtmsbb 嘛,我是用MinGW编译的,好像确实比较容易出这种问题
晚一点我带几个dll再传个包
@wtmsbb 传了两个dll,可以用了,大概
@Lidith
可以了哦,说到MinGW编译器我就头疼,学c++的时候弄环境就折腾了半天
等等,我突然发现很多手机小说阅览器都有自动删除多余空行的功能(我用的是静读天下),我们一直以来的努力全部木大了
@wtmsbb 手机屏幕比较小,带段间空行的话一屏显示的字太少了。
很多阅览器还带自动段前缩进了
notepad++可以直接用正则表达式\r\n(?!\r\n)替换成空就行了
@陳希靈 要保留两个回车可以用\r\n(?![ \r])
如果源文件没有两个回车可以用\r\n(?! )
@陳希靈 dalao好活
不过后面那个还是复制一个原文件的空格比较好,空格有时候是全角有时候是半角有时候是制表符
发评论被DDoS拦截了就有点蠢emmm
@Lidith 确实没考虑空格
我是脸滚键盘测试的
考虑空格的话可以用\r\n(?![ \t])
@陳希靈 空格不一样又不能留两个回车了(太怪了)
还是给个通用方法吧[\r\n]+(?=[\u4E00-\u9FA5\w])
@陳希靈 不行的话就是编码问题,用其他方法,ANSI我不会
@陳希靈 \s了解一下

另外用vs code就没有\r\n / \n的问题了哟
@xiaoas 目标明确的话还是[]好,避免匹配到什么奇怪的东西

vscode说实话不是很熟
VS code 直接把 "\n(?!x)" (引号里的内容,不要引号)替换成空格就行,x为段首缩进的一串空格
@鈤川冈坂 打漏了,是“\n(?! )(?!\n)”