#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'