выборка сегментов строки с помощью регулярки
ребят помогите с регулярками на js
есть строка right-wide-inside.png
у нее 3 сегмента неизвестной длины
right
wide
inside
гарантировано в строке есть первый и второй дефис и точка, длина сегментов и расширения неизвестны
надо 3 регулярки для функции test.replace() которые будут заменять эти 3 сегмента, например right на left, wide на long, inside на outside
Частичное решение: первые 2 варианта написал, последний не дается
- /^[^-]*-/
- /-.*-/
- ???
Ответы (3 шт):
Автор решения: Алексей Бронштейн
→ Ссылка
const initString = 'right-wide-inside.png';
const [_, right, wide, inside] = initString.match(/(\w+)\-(\w+)\-(\w+)\.(\w+)?/);
Автор решения: UModeL
→ Ссылка
Если три раздельных, то так:
let sSource = 'right-wide-inside.png';
console.log( sSource.replace(/^[a-z]+(.*)$/, 'left$1') );
console.log( sSource.replace(/^(.*-)[a-z]+(-.*)$/, '$1long$2') );
console.log( sSource.replace(/^(.*-)+[a-z]+(\..*)$/, '$1outside$2') );