第一个列表如下:
accept
accepted
accepts
accepting
calculate
calculated
calculates
calculating
fix
fixed
我想要的列表:
accept accepted accepts accepting
calculate calculated calculates calculating
fix fixed
答案 0 :(得分:0)
我可以想象以有限的成功以编程方式进行此操作(以第一个词为根,而如果派生词跟随此根,则将其置于同一行 , else 将单词作为新根并将其放入新行)。对于所有形式的root都不一样的情况,这仍然会失败。
如果没有编程,只有(手动)预处理有一种方法 - 如果列表中给定单词的形式少于4个,则为每个缺少的动词形式插入空白行,因此总是4行< / strong>对于每个单词。然后你可以使用正则表达式将每个这样的四元组分成一行。
答案 1 :(得分:0)
这似乎有效,但你必须多次Replace All
:
查找(^(.+?)\s*?.*?)\R\2
并替换为\1\t\2
。 {}禁用. matches newline
。
工作原理:
它会在行^(.+?)
的开头找到一些字符,然后在任何换行符\R
找到这些字符,再次找到相同的字符\2
。
\s*?.*?
用于在多个Replace All
之后跳过不必要的字符。 \s*?
跳过第一个空格,并.*?
线上剩余的任何字符。
匹配将替换为\1\t\2
,其中\1
是(^(.+?)\s*?.*?)
中匹配的任何内容,\2
是与(.+?)
匹配的任何内容。 \t
用于插入制表符以替换换行符。
它如何破裂:
请注意,对于具有相似前缀的不同字词,这不会很好用,例如:
hand
hands
handle
handles
2次替换后,这将是hand hands handle handles
。