Найти 3 слова из строки

#javascript #regex

#javascript #регулярное выражение

Вопрос:

У меня возникла проблема с использованием регулярных выражений, и прошло полдня с поиском команд, я надеюсь, что кто-нибудь может помочь мне с этой проблемой.

строка:

 ProductTable ChairStyleNewproductLocationUnited Kingdom
  

Что я хочу, так это получить слова: Table Chair , Newproduct и последнее — это United Kingdom . К вашему сведению, в строке мало пробелов.

Спасибо

Комментарии:

1. Не могли бы вы указать, на каком языке вы используете регулярное выражение, пожалуйста?

2. Было бы полезно получить больше потенциальных входных данных и больше информации о его формате.

3. Я использую javascript..

4. Так что же вас останавливает? Где вы застряли?

Ответ №1:

Вам пришлось бы разместить больше входных данных, потому что ваш формат данных сейчас расплывчатый…

Но я все равно попытаюсь ответить:

 ^s*Product(. ?)Style(. ?)Location(. ?)s*$
  

Ваша информация находится в 3 захваченных группах. Я не могу сказать больше, пока не узнаю язык, который вы используете.

РЕДАКТИРОВАТЬ: В JS:

 var re = /^s*Product(. ?)Style(. ?)Location(. ?)s*$/gm;
var inputString = "ProductTable ChairStyleNewproductLocationUnited Kingdom";
// Add another line of data
inputString  = "nProductDeskStyleOldproductLocationGermany";

var match;
while((match = re.exec(inputString))) {
    console.log({
        product: match[1],
        style: match[2],
        location: match[3]
    });
}
  

Комментарии:

1. @user3670443 Хорошо, я добавил пример JS

Ответ №2:

В Python:

 >>> import re
>>> exp = r'^Product(?P<product>(.*?))Style(?P<style>(.*?))Location(?P<loc>(.*?))$'
>>> i = "ProductTable ChairStyleNewproductLocationUnited Kingdom"
>>> results = re.match(exp, i).groupdict()
>>> results['loc']
'United Kingdom'
>>> results['product']
'Table Chair'
>>> results['style']
'Newproduct'