php
  • regex-negation
  • 2013-03-25 21 views 5 likes 
    5

    Tüm kelimeleri eşleştirmeye çalışıyorum {} ancak "_loop" sözcüklerini değil. Reg ifademle nereye gittiğimi göremiyorum.PHP Regexp negative lookahead

    bu olur
    $content = '<h1>{prim_practice_name}</h1><p>{prim_content}</p><p>Our Locations Are {location_loop}{name} - {state}<br/>{/location_loop}</p>'; 
    $pattern = '/\{(\w*(?!\_loop))\}/'; 
    
    +0

    sen 'bir olan ileriye dönük arıyoruz <'?!. – mario

    cevap

    3

    \ çekinize önce durdurma kelime "_loop" "yiyor" *, önce kelime kontrol gerektiğini önlemek için w, çünkü (\ w önce *), aşağıdaki gibi:

    $pattern = '/\{((?!\w*_loop\})\w*)\}/'; 
    

    veya bir ?< ! kullanabilirsiniz:

    $pattern = '/\{(\w*(?<!_loop))\}/'; 
    
    İlgili konular