我想在 Notepad ++ 中仅保留每行的第一个单词。例如,请考虑我有这些行的情况
aleag greats broa
abro gdert gfherr httowpw
asteruso dgheur graterf
我想要留下的是这个
aleag
abro
asteruso
我该怎么做?要么使用 notepad++,要么使用其他东西。
答案1
我刚刚看了一个參考表,所以可能有更好的方法来做到这一点,但你可以用替换对话框(Ctrl+ H)做这样的事情:
寻找:([0-9a-zA-Z]*)([0-9a-zA-Z ]*$)
代替:\1
我读它的方式基本上是:
[0-9a-zA-Z]
:匹配一个字母数字字符
*
:继续匹配它们
[0-9a-zA-Z ]
:匹配一个字母数字字符或空格
$
:匹配行尾
()
:在变量中“保存”匹配项。第一个在 中保存匹配项,第二个在 中()
保存匹配项(我们不需要)。\1
\2
因为第一个()
是“保存”你想要的匹配项,所以你将用它替换文本。如果你点击全部替换。
答案2
与 Louis 建议的类似的解决方案是再次在 Notepad ++ 中使用正则表达式搜索,并使用搜索参数:
(^.+?)\s.*$
并将其替换为:
\1
与 Louis 的版本相比,此版本的优势/不同之处在于,它还将匹配包含非字母数字字符的首词,如Apostrophy's
或Colons:
或。Hyphen-ated
这会匹配从每行开头开始的所有内容(^
符号表示行首)。它会找到至少一个字符(.+?
非贪婪匹配一个或多个字符),一旦找到空白(\s
空白/空格)就会停止。然后它继续匹配行中的所有其他内容(.*
匹配零个或多个字符),直到行尾($
行尾)。
然后将\1
只保留括号内匹配的部分,即行中第一个空格之前的所有内容。
注意:请确保. matches newline
未选中复选框,否则您将只能获得整个文档中的第一个单词。
答案3
由于你不知道用什么语言来编程,你可以在 Excel 中执行此操作
将每一行粘贴到 A 列中。
然后,在 B 列中粘贴
=LEFT(A1,SEARCH(" ",A1)-1)
答案4
一个更简单的解决方案是使用.*
只需打开 Notepad++,在搜索和替换中选择正则表达式,输入以下内容,然后单击全部替换:
Find: .*
请注意,点前面有一个空格,并且替换为空白。