我有一个像这样的文本文件......
$index 57320
$title The vertex-cover polynomial of a graph
$time 1988
$abstract In this paper we define the vertex-cover...
$index 57321
$title Locating stations on rapid transit lines
$time 1978
$index 57322
$title Fast heuristics for large scale covering-location problems
$time 1998
$abstract We propose fast heuristics for large scale...
$index 57323
$title Efficient vector processing on dataflow supercomputer SIGMA-1
$time 2001
$abstract Efficiency in vector handling is the key to obtaining high...
我想将每个linebreak
转换为comma
,同时将每个emptyline
转换为linebreak
。而示例文本的输出应该是这样的(使用"点" ...缩短文本):
$index 57320,$title The vertex-cover...,$time 1988,$abstract In this paper...
$index 57321,$title Locating stations on...,$time 1978
$index 57322,$title Fast heuristics for...,$time 1998,$abstract We propose fast...
$index 57323,$title Efficient vector...,$time 2001,$abstract Efficiency in...
我尝试将\r\n
替换为,
并且它有效但是如何同时应用两种操作来将linebreaks
转换为comma
和emptyline
以用作linebreaks
用于获得所需的输出。
请在这方面提供帮助。
谢谢!
答案 0 :(得分:2)
放入查找&替换为正则表达式模式。
查找
([^\r\n]+)\r\n
替换为:
$1,
你可以找到这个,以摆脱每一行的尾随空格:
([^\r\n]+?) *\r\n
答案 1 :(得分:0)
您需要分两步完成。首先,用逗号替换所有换行符,但前提是它们不在行的开头,并且只有在$
字符后面:
(?<!^)[ \t]*\r?\n(?=\$)
将所有这些匹配替换为,
。注意[ \t]*
部分用于清理每行末尾的空格 - 我发现在你发布的样本中;如果它不存在于现实中,你可以省略那部分。测试live on regex101.com。
然后,将所有(\r?\n){2,}
替换为$1
。