Есть ли редактор или плагин для более мощных регулярных выражений? - PullRequest
1 голос
/ 17 ноября 2009

Регулярные выражения отлично подходят для редактирования текста. Но иногда их недостаточно. Например, скажем, у меня есть текст с 1000 предложениями с первым символом в нижнем регистре:

меня зовут Фу. Привет, как ты? мне очень нравится этот форум ... и т.д.

И я хочу преобразовать их так, чтобы первая буква была заглавной. Это возможно с регулярными выражениями, но нужное вам регулярное выражение очень длинное и неопрятное. Одна из вещей, которые мне нравятся больше всего в регулярных выражениях, это возможность перехватывать части строки в скобках и использовать их с $ i или \ i или любым другим для замены.

Мой вопрос: знаете ли вы редактор или плагин для редактора, где вы можете обрабатывать эти группы захвата на каком-то языке (скажем, Python?). Это позволило бы нам делать такие вещи как:

поиск:
^ (.) (. *) $
и замените это на:
toUpperCase ($ 1) $ 2

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

Manuel

Ответы [ 7 ]

5 голосов
/ 17 ноября 2009

Regexbuddy за победу. В блоге Джеффа Этвуда (Coding Horror) упоминается несколько раз.

4 голосов
/ 17 ноября 2009

Awk предлагает такое сочетание интеграции Regex с императивным программированием.

3 голосов
/ 17 ноября 2009

Попробуйте GVim - если вы (или готовы к тому, чтобы освоиться) с ярлыками vi.

http://www.vim.org/

Еще один, конечно, Perl из командной строки.

2 голосов
/ 17 ноября 2009

GNU Emacs может сделать это также (если вы не возражаете против Emacs Lisp и необычного GUI). Он по-прежнему использует старый синтаксис POSIX Regex, а не новый Perl-синтаксис (что означает, что вы должны избегать захвата скобок группы).

Поиск

^\(.\)

Заменить на

\,(upcase \1)

и все готово. Конечно, вы можете сделать это в интерактивном режиме, и вы также можете вызывать свои собственные макросы Lisp оттуда, конечно.

1 голос
/ 17 ноября 2009

Komodo Edit позволяет создавать фрагменты кода на нескольких языках сценариев (включая Python, Perl и PHP), которые можно выполнять на выделенном тексте (или, как я полагаю, среди файлов).

Так что, если вы хотите запустить небольшой скрипт в вашем редакторе, который прошел каждую строку (или каждые 27 строк) и использовал первую букву с заглавной буквы, вы можете сделать это в этом редакторе и сохранить его как фрагмент кода для запуска позже.

Кроме того, он позволяет создавать диалоги для заполнения частей вашего кода, чтобы вы могли написать код один раз, а затем выполнить произвольный код на Python для любого необходимого вам регулярного выражения, даже не затрагивая базовый сценарий снова.

1 голос
/ 17 ноября 2009

UltraEdit имеет полный базовый движок JavaScript, встроенный , включая возможности регулярных выражений. Механизм сценариев имеет полный доступ к DOM UE, так что, похоже, это может сработать для вас.

0 голосов
/ 17 ноября 2009

Различные редакторы имеют свои собственные расширения для синтаксиса регулярных выражений, но мне легче писать короткую программу чаще, чем 1) изучение нового синтаксиса или 2) изучение нового редактора. Но тогда я уже знаю, как программировать. :)

Textpad содержит экранирующие коды, такие как \U в верхнем регистре, например, наряду с другими.

...