[ Milan M. Radovic @ 25.03.2011. 09:45 ] @
Ako nesto ne mogu da naucim, onda su to regularni izrazi.. molim za pomoc.

hocu da zamenim string koristeci preg_replace .... po uslovom da patern ima ispred sebe samo SPACE ili pocetak stringa, da iza sebe ima sve osim ALFANUM-a...

Ubicu se... nikad da nadjem lep, srpski, kompletan tutorijal za Regex...

/(^|[^\w]){$dictionary[$i]['word']}[^\w]/ ovo?



[Ovu poruku je menjao Milan M. Radovic dana 25.03.2011. u 11:09 GMT+1]
[ Aleksandar Ružičić @ 25.03.2011. 12:10 ] @
ovo je najjednostavniji nacin:
Code (php):

$res = preg_replace('/(^|\s+)' . preg_quote($dictionary[$i]['word'], '/') . '([^a-zA-Z0-9])/', '$1REPLACED$2');
 


mada bi pomoglo kada bi dao primer stringa koji se nalazi u $dictionary[$i]['word']...
[ [email protected] @ 26.03.2011. 11:48 ] @
Ili nešto kao:
Code:
$output = preg_replace('/(?<=^|\s)'.preg_quote($dictionary[$i]['word'], '/').'(?=\W)/', 'REPLACE', $text);
[ Mr. Bond @ 26.03.2011. 23:10 ] @
Ne znam da li je dozvoljeno kačenje linkova ka drugim sajtovima ali ovde imaš odlične tekstove za RegEX. Ja sam pre par meseci imao isti problem kao ti a to je da sa RegEX-om nisam znao ni odakle da počnem ni šta to uopšte radi. Prelistao sam ovaj sajt i mnoge stvari su mi postale jasnije. Daleko od toga da sad "sabijam" RegEX ali snalazim se, učim idalje ali više nemam glavobolje sa njim :)
[ Milan M. Radovic @ 29.03.2011. 08:03 ] @
Da pronadje "LAN" u "100Mbps LAN" ili "LAN konekcija" ali ne u "HoLANdija" ili u "HDMI,LAN,DVI"

[ [email protected] @ 29.03.2011. 12:13 ] @
Možda:
Code:

$array = Array("100Mbps LAN", "LAN konekcija", "HoLANdija", "HDMI,LAN,DVI");

foreach($array as $item) {
  $output = preg_replace('/(?<=^|\s)LAN(?=\W|$)/', 'REPLACE', $item);
  echo $item . ' => ' . $output . '<br /><br />';
}
[ Nikola Poša @ 29.03.2011. 14:11 ] @
Rešenje je u upotrebi \b (word boundary) escape sekvence. Ako hoćeš da match-uješ LAN isključivo kao zasebnu reč, stavi je između dva word boundary karaktera: /\bLAN\b/. To bi npr. match-ovalo sledeće string-ove:
LAN mreža
foobar LAN.
bar LAN baz
[ [email protected] @ 29.03.2011. 14:20 ] @
Word boundary će mu match-ovati i "HDMI,LAN,DVI".
[ Nikola Poša @ 29.03.2011. 15:42 ] @
Da, u pravu si, ja sam ovako na prvu loptu, ne obraćajuću pažnju na detalje u njegovom post-u pomislio da je rešenje za ono što on traži jako jednostavno, tačnije to match-ovanje segmenata kao zasebnih reči.