Регулярное выражение (preg_match_all) - PullRequest
0 голосов
/ 23 ноября 2011

Это мой код:

    <?php
    $matchWith = "http://videosite.com/ID123";
    preg_match_all('/\S\/videosite\.com\/(\w+)\S/i', $matchWith, $matches);  
    foreach($matches[1] as $value)
    {  
            print '<a href="http://videosite.com/'.$value.'">
    Hyperlink
    </a>';        

    }  
    ?>

Это не работает. Я хочу исключить каждое совпадение, в котором есть пробел до или после ссылки (с идентификатором). Я использовал \S для этого.

Например, если:

$matchWith = " http://videosite.com/ID123 ";

ничего не должно отображаться.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2011

Вы ставите не на место косую черту в регулярном выражении. Попробуйте использовать следующее:

preg_match_all('/\Svideosite\.com\/(\w+)\S/i', $matchWith, $matches);
0 голосов
/ 23 ноября 2011

Вам не хватает начального разделителя и escape:

preg_match_all('/\S\/videosite\.com\/(\w+)\S/i', $matchWith, $matches);  
                ^  ^
...