поэтому у меня есть строка вроде этого:
var a = " 'asdf'+'asdf'+'we' + 1";
Я могу выбрать три кавычки:
'([^']*)'
Как выбрать начало одиночной кавычки (') в строке с помощью regex? А также отдельное регулярное выражение для выбора конца одиночной кавычки (')? Возможно ли это с регулярным выражением? Я заменил начало цитаты на <<.
Окончательная строка будет выглядеть так:
" <<asdf'+<<asdf'+<<we' + 1"
Когда вам нужно заменить только часть шаблона, используйте группу захвата вокруг части, которую нужно сохранить, и просто сопоставьте (и уничтожьте) те части, которые нужно удалить.
var a = " 'asdf'+'asdf'+'we' + 1";
console.log(
a.replace(/'([^']*')/g, '<<$1')
);
// And, to replace both ' in one go (notice the ) shift to the left):
console.log(
a.replace(/'([^']*)'/g, '<<$1>>')
);
Вот,
'
- соответствует и потребляет '
([^']*')
- сопоставляет и захватывает в группу 1 ноль или более символов, отличных от '
(с [^']*
), а затем a '
. $1
в шаблоне замены является заполнителем для содержимого, хранящегося в группе 1 после того, как будет найдено действительное соответствие.([^']*)
- только фиксирует любые символы 0+, отличные от '
в группу 1, поэтому окончательный '
сопоставляется и потребляется и будет отсутствовать в содержимом заполнителя $1
.Кроме того, см. Демо-версию regex 1 и демо-версию regex 2.
a=a.replace(/'([^']*)'/g, '<<$1>>')
.
a