我正在寻找一个正则表达式字符串,用于选择跟随一定数量字符的每个换行符(在我的例子中为19)。
这将选择整行 - 但我只希望选择符合此条件的换行符:
.{19,}[^\n]
任何帮助都会非常感激(我显然不知道我对正则表达式的看法。)
基本上我要做的是搜索和替换文本编辑器,支持正则表达式以摆脱OCRd书中的换行符。我的一些启发式方法是,每个短于19个字符的行可能是段落(这是一本非常小的书)并且应该保持换行符,而所有其他行应该中断。
示例:
应该取出1.之后的换行符,因此“around”这个词会向上移动。第3行之后的换行不应该因为它太短 - 所以不会取出到下一段(第4行)的过渡。
我希望这有道理吗? (因为我没有使用编程语言,我假设/ K不起作用 - 至少它不在我目前使用的编辑器中。)
谢谢!
答案 0 :(得分:0)
regexp的一个非常有用的工具是正则表达式测试程序,例如Regex 101
通过这种方式,您可以看到正则表达式正在做什么。确保澄清你正在使用哪一个(我主要使用Ruby编程,这与其他一些编程有点不同)。
在你的,。{19,}中查找19个或更多字符,如果你想要19,请删除逗号。
.{19}
然后,因为你不想要那些19(或19加?)字符,你可以使用:
.{19}\K\n
\ K'忘记'到目前为止已经匹配的内容并从那一点开始。如果你的正则表达式允许它非常有用(如果我没记错的话,Ruby不会这么做吗?)如果你想要从行首开始使用19个字符:
^.{19,}\K\n
如果您想要所有匹配项,请不要忘记多行和全局选项。
也!请务必阅读上面的Crayon Violent的评论,以获得更多好的建议(以及一个重要的Windows事实!)