2015-01-07 2 views
0

я пытаюсь получить это число, которое находится между тегами << >>регулярное выражение получает номер от тегов

333333 

из

string = "my subject <<my-support-id=333333>>" 

Можете ли вы дать какие-либо рекомендации, как я не получаю нигде

I Я пытаюсь получить это с помощью функции preg_match в php.

+0

Кажется простая манипуляция строки может быть более подходящей здесь. –

ответ

2

Как насчет регулярных выражений

/<<[^\d]+(\d+)>>/ 
  • [^\d]+ отрицается классовый характер. будет соответствовать ничего, кроме цифр, \d

  • (\d+) Захват группы 1 будет содержать цифры в << >>

Regex Demo

Тест на

preg_match("/<<[^\d]+(\d+)>>/", "my subject <<my-support-id=333333>>",$matches); 
print_r($matches[1]); 
=> 333333 

ИЛИ

/<<[^=]+=(\d+)>>/ 

Тест

preg_match ("/<<[^=]+=(\d+)>>/", "my subject <<my-support-id=333333>>",$matches); 
print_r($matches[1]); 
=> 333333 
1

Попробуйте это:

preg_match_all('/\=([0-9]+)>/','my subject <<my-support-id=333333>>', $out, PREG_PATTERN_ORDER); 
echo $out[1][0]; 
+0

работает отлично спасибо –

0

Вы можете сделать это -

$string = "my subject <<my-support-id=333333>>"; 
$pattern = '/\d+/'; 
preg_match($pattern, $string, $matches); 
print_r($matches); 

И выход будет Array ([0] => 333333)

EXAMPLE

+0

много спасибо работает отлично –

Смежные вопросы