Регулярные выражения - полная пустота для меня. Я имею дело с одним прямо сейчас в TextMate, который делает то, что я хочу, чтобы он делал ... но я не знаю, ПОЧЕМУ он делает то, что я хочу, чтобы он делал.Объясните это Регулярное выражение пожалуйста
/[[:alpha:]]+|()/(?1::$0)/g
Это используется в фрагменте TextMate и то, что она делает это принимает метку и выводит его в качестве имени идентификатора. Поэтому, если я набираю «First Name» в первом месте, это выводит «FirstName». Раньше это выглядело так:
/[[:alpha:]]+|()/(?1:_:/L$0)/g (it might have been \L instead)
Это превратит «Имя» в «first_name». Итак, я понимаю, что подчеркивание добавляет символ подчеркивания для пробела и что/L уменьшает все ... но я не могу понять, что все это делает или почему.
Кто-то должен объяснить это по частям?
EDIT
Вот фактический сниппет в вопросе:
<column header="$1"><xmod:field name="${2:${1/[[:alpha:]]+|()/(?1::$0)/g}}"/></column>
Будет ли этот синтаксис регулярного выражения работать вне TextMate? Я предполагаю, что при вводе текста в TextMate он работает только с символом, который я только что напечатал. Как записать это регулярное выражение, чтобы применить его к целому файлу? –
См. Обновленный ответ выше для примера вне TextMate. –