我有一个数据集,我需要从一行中的标签中获取值。
说我有这个数据集:
test
pizza
pudding
cheese
Newt
somethingelse
otherstuf
pokemon
somedate
derp
注意2和1个新行之间的区别。
当有2个新行时,将创建一个新行 当有一个新行时,“value”将与空值在同一行中。 这个数据集将成为:
test pizza pudding cheese
Newt somethingelse otherstuf
pokemon somedate derp
再次注意此示例中的第一行,pizza
和pudding
之间的空行是1行而不是2行。
我尝试在新行上使用^\n
匹配并替换为\t
,但这会让我在一行上标记所有不符合我要求的内容。
我正在使用 sublime 。
答案 0 :(得分:1)
我建议
(.)\R{1,2}+(?!\R)
并替换为$1\t
。这样,您将仅匹配1到2个换行符,并使用制表符替换它们。 (.)
将确保在第一个换行符之前该行上有一些数据。
模式详情:
(.)
- 第1组捕获换行符以外的字符\R{1,2}+
- 1或2个换行符...... (?!\R)
- ...没有后面的换行符。如果您允许合并空行,您可以尝试
(?<!\n)\R{1,2}+(?!\R)
并替换为\t
。
然后,要用一个替换3个换行符,请使用
\R{3}
并替换为\r\n
或\n
或\r
,具体取决于您的操作系统/要求。
答案 1 :(得分:0)
答案 2 :(得分:0)
选择好的换行序列(根据您的文件)并使用两遍。 Windows换行序列的示例:
使用两遍:
\r\n
替换为\t
\t\t\t
替换为\r\n