2012-01-21 4 views

ответ

3

Ваше регулярное выражение будет соответствовать только в том случае, если строка имеет ровно одну цифру. Чтобы соответствовать только цифры внутри цитаты, использование:

preg_match("/'(\d+)'/", $linkvar, $result); 
var_dump($result[1]); 
4

Ваше регулярное выражение соответствует только если вся строка состоит из одного числа из-за ^ и $ модификаторов , Ваше текущее регулярное выражение переводится в человеческом языке:

  1. ^ означает «это начало строки»
  2. [0-9] означает «соответствовать один числовой символ»
  3. $ означает «это конец строка»

Изменить его:

preg_match("[0-9]+",$linkvar,$result); 

Или в качестве альтернативы, сокращенный синтаксис для совпадающих номеров:

preg_match("\d+",$linkvar,$result); 

Модификатор + означает, что «один или более» номера должны быть найдены для того, чтобы быть совпадением.

Кроме того, если вы хотите действительно захватить числа внутри строки, вам нужно будет добавить круглые скобки, чтобы сообщить preg_match, что вы действительно хотите «сохранить» цифры.

1

^и $ совпадают начало и конец строки, что означает, что вы в настоящее время ищете для строки, содержащей только одну цифру. Удалите их и добавьте квант плюс, оставив только «[0-9] +», и он найдет первую группу цифр в строке.

preg_match("[0-9]+",$linkvar,$result); 
Смежные вопросы