парсинг — PHP разбирает предложение и сохраняет информацию в переменных

В PHP я пытаюсь создать естественную систему распознавания текста, которая может распознавать то, что вы пишете интеллектуальным способом.
Я бы хотел, чтобы оно соответствовало предложению с «шаблоном» и сохраняло некоторую информацию, например, если schedule a {scheduletype} with {person} at {time} по сравнению с Schedule a meeting with Ann at 3pm, код PHP будет создавать переменные $scheduletype с ценностью встречи, $person с Энн и $time с 3 вечера. Можно ли заставить его работать, если предложение написано в другом порядке, например, «В 3 часа дня назначить встречу с Энн»?
Я пытался найти это в Google и Stack Exchange, но, к сожалению, ничего не нашел.

Вот мой текущий код:

$pattern = 'schedule a ([a-zA-Z0-9\-\.\/\?_=&;]*) with ([a-zA-Z0-9\-\.\/\?_=&;]*) at ([a-zA-Z0-9\-\.\/\?_=&;]*)';
$content = 'shedule a meeting with Ann at 3pm';


$match = preg_match($pattern, strtolower($content) , $found);
print_r($match);

Проблема в том, что мой код ничего не назначает $preg_match,

1

Решение

Вы можете использовать этот тип именованного регулярного выражения группы захвата:

#Schedule a (?<scheduletype>\w+)\swith\s(?<person>\w+)\sat\s(?<time>\w+)#

Пример:

<?php

$regex= '#Schedule a (?<scheduletype>\w+)\swith\s(?<person>\w+)\sat\s(?<time>\w+)#';
preg_match($regex, 'Schedule a meeting with Ann at 3pm', $matches);

echo $matches['scheduletype']."\n";
echo $matches['person']."\n";
echo $matches['time']."\n";

Играть с регулярным выражением здесь: https://regex101.com/r/6QPRsG/1/

Играть с кодом здесь: https://3v4l.org/OBOnY

1

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

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

По вопросам рекламы [email protected]