4

Я хотел бы сохранить только первое слово каждой строки в Notepad ++. Для примера рассмотрим ситуацию, когда у меня есть эти строки

Алиг Грейтс Броа
abro gdert gfherr httowpw
Asteruso Dgheur Graterf

Хочу, я бы хотел, чтобы это осталось
aleag
ABRO
asteruso

Как мне это сделать? Либо с помощью блокнота ++ или что-то еще.

4 ответа4

8

Я только что посмотрел на справочный лист, так что, возможно, есть лучший способ сделать это, но вы можете сделать что-то подобное с помощью диалога замены (Ctrl+H):

Найти: ([0-9a-zA-Z]*)([0-9a-zA-Z ]*$)
Заменить: \1

То, как я читаю это в основном:
[0-9a-zA-Z] : соответствует буквенно-цифровому символу
* : продолжайте сопоставлять их
[0-9a-zA-Z ] : соответствует буквенно-цифровому символу или пробелу
$ : соответствует концу строки
() : "содержит" совпадение в переменной. First () содержит совпадение в \1 , второе в \2 (которое нам не нужно).

Поскольку first () "удерживает" нужное вам совпадение, это будет то, чем вы заменяете текст. Это делается для каждой строки, если вы нажмете « Заменить все».

WordPad ++ найти заменить

5

Решение, похожее на предложенное Луи, состоит в том, чтобы снова использовать поиск по регулярным выражениям в Notepad++ с параметром поиска:

(^.+?)\s.*$

И заменить на:

\1

Преимущество / отличие этой версии от версии Луи в том, что она также будет соответствовать первым словам, таким как Apostrophy's или Colons: или Hyphen-ated где есть не буквенно-цифровые символы.

Это соответствует всему с начала каждой строки (символ ^ означает начало строки). Находит хотя бы один символ (.+? не жадное совпадение с одним или несколькими символами) останавливается, как только он находит пробел (\s пусто / пробел). Затем он выполняет сопоставление всего остального в строке (.* Соответствует нулю или большему количеству символов) до конца строки ($ - конец строки).

В этом случае \1 будет содержать только соответствие раздела в скобках, т.е. все до первого пробела в строке.

NB убедитесь . matches newline флажок соответствия новой строки снят, или вы получите только первое слово во всем документе.

1

Еще более простым решением является использование " . * ". Просто откройте Notepad++, выберите регулярные выражения в поиске и замене, введите ниже и нажмите «заменить все»:

Find:  .*

Обратите внимание, что это пробел перед точкой, и эта замена пуста.

1

Поскольку вы не знаете языков для программирования, вы можете сделать это в Excel

Вставьте каждую строку в столбец А.

Затем в столбце B вставьте

=LEFT(A1,SEARCH(" ",A1)-1)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .