我不太了解正则表达式,想出一种更聪明的方法将地址列表从块转换为单行。
以下是一个例子:
@sdfqsdf
qsdfqdsf
USA
@sdfqsdf
qsdfqdsf
USA
etc.
我目前使用脑死亡正则表达式:
SEARCH ^@(.+?)\r\n(.+?)\r\n(.+?)\r\n(.+?)\r\n\r\n
REPLACE \1, \2, \3, \4\r\n
这不是很好,因为它假设每个地址有四行,而且它是kludgy。
我想一个更聪明的解决方案是告诉Perl(Boost)正则表达式引擎一个块以两个CRLF结束,并且每个以一个CRLF结尾的行应该将它剥离并用逗号替换,但是我不知道怎么做。
以前是否有人这样做并且可以告诉我?
谢谢。
答案 0 :(得分:0)
迭代所有行并用逗号和空格替换空行尾的每一行。
以下正则表达式适用于直线方法(搜索并替换为", "
)
(?<=.+)\r\n(?!\r\n)
将\r\n
改编为系统的换行符。
如果要在文本编辑器中执行此操作,则VIM命令为
:%s/.\+\zs\r\n\ze\r\n\@!/,
请记住调整\r\n
并且不要忘记,