У меня есть проблема с регулярным выражением, которая меня беспокоит, и я понятия не имею, как ее решить.
У меня есть поле ввода с текстом, и мне нравится извлекать из него определенные значения.
Я хотел бы извлечь название, описание, цену и специальную цену.
Примеры для ввода:
- все, что представляет собой простой текст, относится к заголовку.
- все, что находится внутри хешей (здесь идет #description #), считается описанием.
- $ 23,49 считается ценой, а% $ 19,99 будет соответствовать специальной цене.
Шаблон CoffeeScript, который я использую:
pattern = ///
([^$]+)
(#(.+?)#+)
([\$]\d+\. \d+)
([\%\$]\d+\. \d+)
///
params = [title,description,oldPrice,newPrice]=input_txt.match(pattern)[1..4]
Это не работает. Это должно сработать, если я введу все значения в заданной последовательности, а также я должен предоставить запрашиваемую подстроку.
То, что я хотел бы иметь, - это возможность извлекать сегменты, если они предоставляются (так необязательно) и не зависят от последовательности ...
Как я могу извлечь дополнительные последовательности строки ...
РЕДАКТИРОВАТЬ///
Я приведу несколько примеров
exmp1:
Kindle #Amazon's ebook reader# $79.00
это должно быть извлечено как
title:Kindle
description: Amazon's ebook reader
oldPrice:$79.00
exmp2:
Nike Sneaker's $109.00 %$89.00
это должно быть извлечено как
title:Nikes Sneaker's
oldPrice:$109.00
newPrice:$89.00
exmp3:
$100.00 Just dance 3 #for XBox#
это должно быть извлечено до
title: Just dance 3
description: for XBox
oldPrice:$100.00
Любая помощь будет отличной ...