正则表达式:多次出现换行选项卡式结果
Regex: multiple occurence of new line Tabbed outcome
我有一个数据集,我需要从彼此标记的一行中获取值。
假设我有这个数据集:
test
pizza
pudding
cheese
Newt
somethingelse
otherstuf
pokemon
somedate
derp
注意第 2 行和第 1 行之间的区别。
当有2个新行时,将创建一个新行
当有 1 个新行时,"value" 将与空值位于同一行。
这个数据集会变成这样:
test pizza pudding cheese
Newt somethingelse otherstuf
pokemon somedate derp
再次注意此示例中的第一行,其中 pizza
和 pudding
之间的空行是 1 个新行而不是 2 个。
我尝试在新行上匹配:^\n
并用 \t
替换,但这会让我在一行上显示所有内容,这不是我想要的..
为此,我正在使用 sublime。
我建议
(.)\R{1,2}+(?!\R)
并替换为 \t
。这样,您将只匹配 1 到 2 个换行符并将它们替换为制表符。 (.)
将确保在第一个换行符之前该行上有一些数据。
图案详情:
(.)
- 第 1 组捕获换行符以外的字符
\R{1,2}+
- 1 或 2 个换行符...
(?!\R)
- ...后面没有换行符。
如果允许合并空行,可以试试
(?<!\n)\R{1,2}+(?!\R)
并替换为 \t
。
然后,要用一个替换 3 个换行符,请使用
\R{3}
并替换为 \r\n
或 \n
,或 \r
,具体取决于您的 OS/requirements。
当您谈论换行符时,您指的是空白行,否则到达空白行需要检查两个换行符。 2 条换行符也是如此。
查找:(?<!\s)\n(?=\S)|\n{2}
替换为:\t
为了炫耀我的模板。
选择好的换行顺序(根据你的文件)并使用两次。 Windows 换行序列的示例:
使用两遍:
- 将
\r\n
替换为\t
- 将
\t\t\t
替换为\r\n
我有一个数据集,我需要从彼此标记的一行中获取值。
假设我有这个数据集:
test
pizza
pudding
cheese
Newt
somethingelse
otherstuf
pokemon
somedate
derp
注意第 2 行和第 1 行之间的区别。
当有2个新行时,将创建一个新行 当有 1 个新行时,"value" 将与空值位于同一行。 这个数据集会变成这样:
test pizza pudding cheese
Newt somethingelse otherstuf
pokemon somedate derp
再次注意此示例中的第一行,其中 pizza
和 pudding
之间的空行是 1 个新行而不是 2 个。
我尝试在新行上匹配:^\n
并用 \t
替换,但这会让我在一行上显示所有内容,这不是我想要的..
为此,我正在使用 sublime。
我建议
(.)\R{1,2}+(?!\R)
并替换为 \t
。这样,您将只匹配 1 到 2 个换行符并将它们替换为制表符。 (.)
将确保在第一个换行符之前该行上有一些数据。
图案详情:
(.)
- 第 1 组捕获换行符以外的字符\R{1,2}+
- 1 或 2 个换行符...(?!\R)
- ...后面没有换行符。
如果允许合并空行,可以试试
(?<!\n)\R{1,2}+(?!\R)
并替换为 \t
。
然后,要用一个替换 3 个换行符,请使用
\R{3}
并替换为 \r\n
或 \n
,或 \r
,具体取决于您的 OS/requirements。
当您谈论换行符时,您指的是空白行,否则到达空白行需要检查两个换行符。 2 条换行符也是如此。
查找:(?<!\s)\n(?=\S)|\n{2}
替换为:\t
为了炫耀我的模板。
选择好的换行顺序(根据你的文件)并使用两次。 Windows 换行序列的示例:
使用两遍:
- 将
\r\n
替换为\t
- 将
\t\t\t
替换为\r\n