Это мой код:
<?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 для этого.
\S
Например, если:
$matchWith = " http://videosite.com/ID123 ";
ничего не должно отображаться.
Спасибо.
Вы ставите не на место косую черту в регулярном выражении. Попробуйте использовать следующее:
preg_match_all('/\Svideosite\.com\/(\w+)\S/i', $matchWith, $matches);
Вам не хватает начального разделителя и escape:
preg_match_all('/\S\/videosite\.com\/(\w+)\S/i', $matchWith, $matches); ^ ^