2014-07-27 4 views
2

У меня есть следующая строка:Регулярное выражение для захвата между пространствами

Select SizesS M L XL 

И я хочу, чтобы вытащить размеры сразу после «Select Sizes», в основном, захватив все, что не «Выберите размеры» с пространство на одной или обеих сторонах. Это должно выполняться только с помощью регулярных выражений, так как ImportIO не поддерживает использование методов.

Это то, что я до сих пор:

(?:Select Sizes)\w(\s\w)* 

Заранее спасибо!

+0

Что ожидаемый выход? –

+0

на каком языке? – Braj

+0

Группы захвата должны быть: 'S' 'M' 'L' 'XL', и его для импорта IO, который является javascript, я считаю. –

ответ

2

Вот чистое решение регулярное выражение, если вы хотите, чтобы оценить тот же

(?<!Select\s)(?<=Sizes|\s)(\w+) 

матч все модификатор /g применяется выше регулярное выражение

результат для тестовой строки Select SizesS M L XL

МАТЧА 1

  1. [12-13] S

СПИЧКА 2

  1. [14-15] M

СПИЧКА 3

  1. [16-17] L

MATCH 4

  1. [18-20] XL

демо на regex101.com

+0

+1 приятное использование отрицательного Lookbehind – Braj

4

Вы можете использовать просмотр назад,

(?<=Select Sizes)(.*) 

DEMO

ИЛИ

Select Sizes(\S+)\s*(\S+)\s*(\S+)\s*(\S+) 

DEMO

Четыре захватывая группа используется для захвата без пробелов, которые следуют строка Select sizes

ИЛИ

> "Select SizesS M L XL".split(/Select Sizes| /g) 
[ '', 
    'S', 
    'M', 
    'L', 
    'XL' ] 
+0

+1 с моей стороны для первого варианта. – Braj

2

Вы можете попробовать простую операцию строку: (при необходимости используйте trim() а)

"Select SizesS M L XL".substring(12).split(" "); 

или лучше использовать

"Select SizesS M L XL".substring("Select Sizes".length).split(" "); 

выход:

["S", "M", "L", "XL"] 

Если вы ищете носовую регулярное выражение только с помощью захватив группы затем получить согласованную группу из индекса 2 из ниже регулярных выражений шаблона:

(Select Sizes)?\s*(\w+)\s* 

Примечание: Я полагаю, что нет ничего за Select Sizes и в данной строке есть только размеры.

Вот demo

 Смежные вопросы

  • Нет связанных вопросов^_^