2014-12-24 3 views
0

Я пытаюсь удалить первое пространство в конец строки в каждой строке текстового файла в TextMate с помощью поиска и замены с помощью регулярных выражений.Сбросьте первое пространство до конца строки

Например, я хочу, чтобы заменить следующую строку:

One, 2, Three! 

С:

One, 

Я посмотрел на this вопрос, но я не очень понимаю, как использовать принятый ответ , Кажется, это соответствует всей строке, а не первое пространство вперед.

Нужно ли использовать lookbehind для соответствия первому пространству?

Я начал пытаться:

^([^\s]*)\s.+$ 

, который соответствует всей линии, если есть место, но там нет пробелов на линии, которым они соответствуют две линии одновременно.

Когда у меня есть правильное регулярное выражение, просто поставьте его в поле «Найти» и нажмите «Заменить все» в поле «Заменить»? Я также не понимаю синтаксис «замены шаблона», о котором говорит ответчик в вопросе, с которым я связан.

Спасибо.

ответ

2

Существует не одно правильное регулярное выражение. Существует несколько способов сделать это. Вы можете использовать lookbehind, но нет необходимости. Как на самом деле использовать, регулярное выражение также зависит от того, как шаблон создан - вам может потребоваться заменить ничего, или вам может потребоваться заменить причудливый текст, который более сложный, чем сам шаблон регулярного выражения.


Вероятно, самый простой образец, чтобы использовать .*(?:\n|$) - заменить ничем. (Обратите внимание на пространство перед точкой.)

Другим будет ^(.*?) .*?$, для которого требуется многострочный модификатор. Это сложнее использовать: вам нужно заменить \1. Этот шаблон замены ссылается на текст, который был захвачен регулярным выражением - в этом случае весь текст до первого места. Если вы опустили это, все строки, содержащие пробел, будут удалены.

1

Я не Textmate, но Regexr говорит, что это должно работать:

^([^\s]*)([^\n]+)*$ 

Основное различие в том, что вместо того, чтобы захватить любой пробел, затем любой символ, это захватывает только ничего, кроме символа новой строки ,