Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie synonimów w tekście
Forum PHP.pl > Forum > PHP
koneser69
Muszę znaleźć synonimy wybranego tekstu w drugim dużo dłuższym np

"Bardzo lubię kwiatki"

  1. $tekst = "Bardzo lubię kwiaty lalala Bardzo lubić kwiatki nanan hahaha Bardziej lubię niebieskie i zielone kwiatki Bardzo lubię kwiatuszki";
  2. $of = "Bar.* lub.* kwi.*";
  3. $tekst = preg_replace("/\b($of)\b/", '<span style="border: 1px solid black; ">' . "$1" . '</span>' , $tekst);
  4.  


jako synonim rozumiem wyraz składający się z co najmniej trzech pierwszych liter wyrazu.

Powyższy fragment powinien zaznaczyć
1: Bardzo lubię kwiaty
2: Bardzo lubić kwiatki
3: Bardzo lubię kwiatuszki

A on zaznacza całość. Jeżeli na końcu wyrażenie regularnego dopisze siU to wtedy zaznacza prawidłowo frazy wypisane wyżej ale również czwartą
"Bardziej lubię niebieskie i zielone kwiatki" a tego już nie powinien mi wyłapywać.

  1. $tekst = "Bardzo lubię kwiaty lalala Bardzo lubić kwiatki nanan hahaha Bardziej lubię niebieskie kwiatki Bardzo lubię kwiatuszki";
  2. $of = "Bar.* lub.* kwi.*";
  3. $tekst = preg_replace("/\b($of)\b/siU", '<span style="border: 1px solid black; ">' . "$1" . '</span>' , $tekst);
  4.  


Chodzi o to, że jak fraza składa się z trzech wyrazów to fraza z synonimów też powinna się składać z trzech wyrazów. Proszę o pomoc w rozwiązaniu problemu.

netir
https://www.phpliveregex.com/p/vSy#tab-preg-match-all

Bar\S* lub\S* kwi\S*

btw. zrób proszę klasę zamiast inline ten border w każdym elemencie sypać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.