Как разобрать рецептуру ингредиентной линейки с помощью Coldfusion?

Я использую JSOUP (http://jsoup.org/) для анализа HTML-страницы и извлечения данных с этой страницы. В этом я извлекаю детали рецептов, такие как время приготовления, инструкции & ингредиенты. Возьмите все эти данные со страницы HTML и сохраните их в архивной таблице с именем recipeImport.

Прежде чем вставить их в действительную таблицу рецептов. Я должен разобрать ингредиенты, потому что он был сохранен в таблице recipe_ingredient на основе трех разных основных таблиц, а именно recipeAmount, recipeUnitType & recipeIngredient.

Позвольте мне рассмотреть простой ингредиент, такой как «1 чашка белого сахара». Я разделяю количество (1), unitType (чашка) и ингредиент (сахар), чтобы они соответствовали этим (recipeAmount, recipeUnitType & recipeIngredient) мастер-таблицы и вставьте ингредиент в таблицу recipe_ingredient с идентификатором ссылки.

таблица recipeAmount

ID amountType amountTypeValue
1       1/2         0.5
2       1           1

Таблица recipeUnitType

ID UnitType
1   cup
2   tbs
3   tsp
4   gram

recipeIngredient table

ID  ingredientName

1      sugar
2      salt
3      Honey

Наконец, я должен сохранить ингредиент, как это.

таблица рецептов

ID   amountID   unitTypeID   ingredientID   line_text       ingredient_line

1      2            1             1          white Sugar    1 cup white sugar

До сих пор я использовал это регулярное выражение, чтобы проверить действительный ингредиент.

regex1 = "^((\d+)|(\d+\/\d+)|(\d+)\s(\d+\/\d+)|(\d+-\d+))\s((dash|pinch|tsp|tbs|fl oz|cup|pt|qt|gal|oz|lb|cl|can)|(dash|pinch|teaspoon|tablespoon|fluid ounce|cup|pint|quart|gallon|ounce|pound|fresh|clove|small|medium|large|slice|hand|of|turnip))(s)?\b\s[A-Za-z0-9(,|\-|&|:|!|" & "'|" & '"' & ")\s]+[A-Za-z(,|\-|&|:|!|" & "'|" & '"' & ")\s]+$";

regex2 = "^((\d+)|(\d+.\d+))\s((kg|g|lb|cl)|(kilo gram|gram|pound))(s)?\b\s[A-Za-z0-9(,|\-|&|:|!|" & "'|" & '"' & ")\s]+[A-Za-z(,|\-|&|:|!|" & "'|" & '"' & ")\s]+$";

regex3 = "^((a|an|extra))\s[A-Za-z0-9(,|\-|&|:|!|" & "'|" & '"' & ")\s]+[A-Za-z(,|\-|&|:|!|" & "'|" & '"' & ")\s]+$";

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …