Помогите с регуляркой (заменить не буквы)

Статус
В этой теме нельзя размещать новые ответы.

IgVan

Гуру форума
Регистрация
8 Май 2008
Сообщения
212
Реакции
54
Помогите написать регулярку, заменяю в EmEditor, нужно заменить любой символ, не соответствующий [a-z] (все буквенные символы уже преобразованы в нижний регистр) на символ +. При чем, не во всем документе, а только внутри тэга <link></link>. Этот тэг встречается 1 раз в строке и вложенных тэгов не содержит. Заранее спасибо.

Как опция, но не обязательно, символ + не ставить если он первый или последний в строке, и не ставить два + и более подряд.
 
Не получится, регулярки плохо подходят для подобных случаев. Тут нужна помощь языков программирования
 
Нашел выход, несколько корявый, но мало ли, может кому поможет, правда пришлось запускать автозамену несколько раз.
Правда, как позже выяснилось, мне нужно оставлять не только буквы. В общем, оставлять надо было следующее [a-z0-9-] (а потом мы еще + добавим)

1. Удаляем все что не соответствует маске сразу после тэга:
ищем: <link>[^a-z0-9-]{1}(.*?)</link>
заменяем на: <link>\1</link>

2. То же самое, только перед закрывающим тэгом:
ищем: <link>(.*?)[^a-z0-9-]{1}</link>
заменяем на: <link>\1</link>

3. И все что встречается внутри:
ищем: <link>(.*?)[^\+a-z0-9-](.*?)</link>
заменяем на: <link>\1+\2</link>k>
 
Вместо .*? лучше использовать .+?, так вроде надёжнее.
И ещё, указывать {1} не обязательно, по умолчанию и так будет искать одно повторение :).
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху