我想只保留 Notepad ++ 中每行的第一个单词。例如,请考虑我有这些行的情况
aleag 伟人
broa abro
gdert gfherr httowpw asteruso dgheur graterf
想我想离开是这样的
aleag
ABRO
asteruso
我该怎么做呢?使用记事本++或其他东西。
我只看了参考表,所以可能有更好的方法来做到这一点,但您可以使用“替换”对话框 ( Ctrl+ H)执行类似操作:
查找:([0-9a-zA-Z]*)([0-9a-zA-Z ]*$)
替换:\1
我阅读它的方式基本上是
[0-9a-zA-Z]::匹配一个字母数字字符
* :保持匹配它们
[0-9a-zA-Z ] :匹配一个字母数字字符或空格
$ :匹配行尾
():“保留”一个变量中的匹配项。第()一个在 中保持匹配\1,第二个在\2(我们不需要)中。
由于第一个()是“保持”您想要的匹配,这将是您替换文本的内容。如果您点击Replace All ,它会为每一行执行此操作。

与 Louis 建议的解决方案类似的解决方案是再次在 Notepad++ 中使用正则表达式搜索,并使用搜索参数:
(^.+?)\s.*$
Run Code Online (Sandbox Code Playgroud)
并替换为:
\1
Run Code Online (Sandbox Code Playgroud)
此版本与 Louis 版本的优势/不同之处在于,它还将匹配第一个单词,例如Apostrophy's或Colons:或Hyphen-ated其中有非字母数字字符的地方。
这匹配每行开头的所有内容(^符号表示行首)。它找到至少一个字符(.+?非贪婪匹配一个或多个字符),一旦找到空格(\s是空格/空格)就停止。然后它继续匹配行中的所有其他内容(.*匹配零个或多个字符),直到行尾($是行尾)。
然后\1将只保持括号内匹配的部分,即行中第一个空格之前的所有内容。
注意确保未. matches newline选中该复选框,否则您只会得到整个文档中的第一个单词。
由于您不知道任何编程语言,因此您可以在 Excel 中执行此操作
将每一行粘贴到 A 列中。
然后,在 B 列中粘贴
=LEFT(A1,SEARCH(" ",A1)-1)
Run Code Online (Sandbox Code Playgroud)
