Регулярное выражение, которое изменяет первую букву имени файла на строчные буквы в возвышенном тексте 3 фрагмента - PullRequest
0 голосов
/ 09 ноября 2018

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

import React from 'react';
const fileName= (props) => {


}

export default fileName;

пока у меня есть следующие

<snippet>
 <content><![CDATA[
import React from 'react';
const ${1:${TM_FILENAME/(.+)..+..+/$1/}} = (props) => {


}

export default ${1:${TM_FILENAME/(.+)..+..+/$1/}};
]]></content>
 <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
 <!-- <tabTrigger>hello</tabTrigger> -->
 <tabTrigger>less</tabTrigger>
 <!-- Optional: Set a scope to limit where the snippet will trigger -->
 <!-- <scope>source.python</scope> -->
</snippet>

который выводит

import React from 'react';
const FileName= (props) => {


}

export default FileName;

Как сделать первую букву имени файла строчными?

1 Ответ

0 голосов
/ 10 ноября 2018

Согласно документации фрагмента SublimeText , здесь используется регулярное выражение Boost , и оно поддерживает операторы изменения регистра в шаблонах замены .

Вы можете использовать следующее исправление:

${1:${TM_FILENAME/(.+)..+..+/\l$1/}}
                             ^^

Оператор \l переводит первый символ, стоящий справа от оператора, в нижний регистр.

Другие опции:

\l  Causes the next character to be outputted, to be output in lower case.
\u  Causes the next character to be outputted, to be output in upper case.
\L  Causes all subsequent characters to be output in lower case, until a \E is found.
\U  Causes all subsequent characters to be output in upper case, until a \E is found.
\E  Terminates a \L or \U sequence.

Обратите внимание, что ваш шаблон выглядит не очень хорошо, поскольку он фиксирует 1 или более символов ((.+)) вплоть до последних четырех (..+..+ соответствует последним 4 символам в строке из-за первого жадного шаблона). Это может не делать то, что вам нужно.

Если вы планируете захватить любой текст до последней точки, если она есть, используйте

${1:${TM_FILENAME/^(.*?)(\.[^.]*)?$/\l$1/}}

, где

  • ^ - начало строки
  • (.*?) - Группа 1 ($1): любые 0+ символов, кроме символов разрыва строки, как можно меньше
  • (\.[^.]*)? - Группа 2 (необязательно): a ., а затем любые 0+ символов, кроме .
  • $ - конец строки.
...