通过将每3行组合成一行来排序数据

时间:2018-02-10 07:14:35

标签: regex notepad++

我想通过使用Notepad ++对一些数据进行排序,其中每3行组合成一行。

简而言之。

排序数据:

VK_HANGUL   (0x15)    : IME Hangul mode
-           (0x16)    : Undefined
VK_JUNJA    (0x17)    : IME Junja mode
VK_FINAL    (0x18)    : IME final mode
VK_HANJA    (0x19)    : IME Hanja mode
VK_KANJI    (0x19)    : IME Kanji mode
-           (0x1A)    : Undefined
VK_ESCAPE   (0x1B)    : ESC key

未排序的数据:

VK_CONVERT
(0x1C)
: IME convert

VK_NONCONVERT
(0x1D)
: IME nonconvert

VK_ACCEPT
(0x1E)
: IME accept

VK_MODECHANGE
(0x1F)
: IME mode change request

VK_F3
(0x72)
: F3 key

VK_F4
(0x73)
: F4 key

VK_F5
(0x74)
: F5 key

VK_F6
(0x75)
: F6 key

VK_F7
(0x76)
: F7 key

VK_F8
(0x77)
: F8 key

VK_F9
(0x78)
: F9 key

VK_F10
(0x79)
: F10 key

VK_F11
(0x7A)
: F11 key

VK_F12
(0x7B)
: F12 key

VK_F13
(0x7C)
: F13 key

(0x51)
: Q key

以下是我想要的内容:

是否可以通过正则表达式来实现?

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

([^\r\n]+)\r\n([^\r\n]+)(?:\r\n([^\r\n]+)\r\n)?

并替换为:

\1\t\2\t\3\r\n

将三行合并为一行并用制表符分隔它们(\ t)

答案 1 :(得分:0)

可能性是一种解决方案可能不会寻找3行合并过程以输出预期结果。查看主题字符串,您可以搜索:

(.)\R(?=[:(])

并将其替换为:

\1 
  ^ space character here

Live demo