Этот вопрос является продолжением моего предыдущего вопроса:Получить индекс из текста с помощью PHP
У меня есть текст, как это:
<ORGANIZATION>Head of Pekalongan Regency</ORGANIZATION>, Dra. Hj.. Siti Qomariyah , MA and her staff were greeted by <ORGANIZATION>Rector of IPB</ORGANIZATION> Prof. Dr. Ir. H. Herry Suhardiyanto , M.Sc. and <ORGANIZATION>officials of IPB</ORGANIZATION> in the guest room.
с кодом ответа от моего вопроса до и PREG_OFFSET_CAPTURE
добавлено вот так:
я получаю выход:
Array (
[0] => Array ([0] => Глава Pekalongan Regency [1] => 14)
[1] => Массив ([0] => ректор IPB [1] => 131)
[2] => Array ([0] => должностные лица IPB [1] => 222))
14, 131 , 222 - индекс символа при сопоставлении шаблона. Могу ли я получить индекс слова? То есть выходной сигнал, как это:
Array (
[0] => Array ([0] => Глава Pekalongan Regency [1] => 0)
[1] => Array ([ 0] => ректор ИПБ [1] => 15)
[2] => Array ([0] => сотрудники ИПБ [1] => 27))
есть ли другой способ чем PREG_OFFSET_CAPTURE
или нужен еще код? Понятия не имею. Спасибо за помощь. :)
Нет, нет встроенного - в поддержку получения индекса слова. Если это действительно важно (вы не уточнили * почему *, поэтому я предполагаю, что это не так), вам нужно потратить некоторую работу. С учетом строковых индексов, которые у вас уже есть, вы можете сравнить их со списком позиций слов, которые должны быть приобретены во втором 'preg_match_all ('/ \ w + /''. (Хотя требуется сначала вытеснить теги с пробелами). – mario
О, извините за мой нерепрезентативный вопрос. На самом деле у меня проблема с проверкой фразы типа «красное яблоко» или «синее яблоко». Обе фразы имеют «яблоко», но мы не знаем, какое красное или синее «яблоко», которое приходит первым, если просто используйте 'preg_match_all ('/ \ w + /''. – andrefadila