Сменить всем символам регистр на нижний

Тема в разделе "Регулярные выражения", создана пользователем View, 12 дек 2009.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. View

    View Постоялец

    Регистр.:
    17 авг 2009
    Сообщения:
    107
    Симпатии:
    25
    Здравствуйте, подскажите пожалуста как можно в тексте все символы перегнать в нижний регистр посредством регулярок?

    Использую для работы notepad++, просьба не кидайте решения на php

    :thenks:
     
  2. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    Никак. Сама по себе регулярка не производит ни трансформацию, ни даже замену, а лишь находит определенный фрагмент текста. По скольку нужно обработать все символы, стадия поиска отпадает, сразу преобразовываем символы. Например в perl это функция lc, в PHP strtolower, для вашего языка открываем мануал.
     
  3. Ponochka

    Ponochka Постоялец

    Регистр.:
    21 фев 2008
    Сообщения:
    128
    Симпатии:
    13
    комбинация Ctrl+Shift+L ?
    если php, то функция strtolower
     
    View нравится это.
  4. usasoft

    usasoft

    Регистр.:
    9 янв 2008
    Сообщения:
    200
    Симпатии:
    107
    TextFx->TextFx Characters->lower case

    удобнее CTRL+L или CTRL+U для верхнего регистра

    взято отсюда http://forum.searchengines.ru/showthread.php?t=433620
     
    View нравится это.
  5. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    124
    RolCom, ты не прав. Регулярными выражениями можно не только искать текст, но и делать по нему замены. Правда чтобы сменить регистр достаточно встроенной функции редактора или языка, применять регулярки здесь сильно круто :)
     
  6. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    Это ты ошибаешься.
    Дабы не быть голословным, пример. Поднять регистр символам a-f
    Код:
    s/[a-f]+/uc ${^MATCH}/eg;
    
    оператор s с помощью регулярного выражения [a-f]+ в левых скобках находит символы, а с помощью программного кода в правых скобках поднимает им регистр.
    uc (Upper Case) функция поднимает регистр, возвращает строку. Переменная ${^MATCH} соответствует строке, найденой регулярным выражением.
     
  7. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    124
    Ну в принципе я это и имел в виду. Что можно проводить замену на все что угодно. А в перле так вообще есть удобная функция ~tr/[abc]/[ABC]/ которая просто ставит в соответствие первому набору символов второй и может работать с регулярными выражениями.
     
  8. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    Код:
    Что можно проводить замену на все что угодно.
    Так то так, но это прерогатива оператора/функции для работы с регуляркой. В Perl s, m и функции split и grep делают это по разному. Можно и свою функцию написать, с блекджеком и шлюхами, задача регулярки обеспечить совпадения для ее работы. А так в правую часть s можно написать офигенный код, но это регуляркой не будет. По этому редактор, если он не имеет своего языка скриптов, не сможет выполнять трансформацию текста, найденого регуляркой, даже если механизм самих регулярок там лучше.

    А tr не работает с регулярками, там просто указывается два набора символов, и диапазон можно через - указывать. Аналог uc для английских букв с tr будет tr/a-z/A-Z/;
     
  9. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    124
    Ок. Согласен. Ты все правильно по полочкам разложил. Конвертирование символов это задача функции.
     
  10. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    А это нужно сделать именно посредсвом регулярных выражений? Или просто чтобы на веб странице текст в верхнем регистре был?

    Если второе то есть свойство CSS text-transform:uppercase.
     
Статус темы:
Закрыта.