Все между & quot; [ответить] & quot; и извлеките номер ответа

Пожалуйста, взгляните на следующую ситуацию ниже.

[reply="292"] Text Here [/reply]

То, что я пытаюсь получить, это число между цитатами в reply="NUMBERS", Я хочу извлечь это в одну переменную и текст между [reply="NUMBER"] this text here [/reply] в другую переменную.

Итак, для этого примера:

[reply="292"] Text Here [/reply]

Я хочу извлечь номер ответа: 292 и текст между reply теги: Text here,

Я попробовал это:

\[reply\=\"]([A-Z]\w)\[\/reply]

Но это работает только до reply тег, не работает после этого. Как я могу сделать это?

0

Решение

Я оставил универсальный (. *), Но вы можете указать тип, как десятичный (\ d +).

PHP:

$s = '[reply="292"] Text Here [/reply]';
$expr = '/\[reply=\"(.*)\"\](.*)\[\/reply\]/';
if(preg_match($expr,$s,$r)){
var_dump($r);
}

JavaScript:

s = '[reply="292"] Text Here [/reply]'
s.match(/\[reply=\"(.*)\"\](.*)\[\/reply\]/)
//["[reply="292"] Text Here [/reply]", "292", " Text Here "]
1

Другие решения

Легко!

\[reply\=\"(\d+)\"](.*?)\[\/reply]

объяснение

  1. \d для цифры
  2. + за 1 или более вхождений указанного символа.
  3. [\w\s] для любого символа в слове и пробеле (\s)

Затем примените его к PHP следующим образом:

<?php
$str = "[reply=\"292\"] Text Here [/reply]";
preg_match('/\[reply\=\"(\d+)\"]([\w\s]+)\[\/reply]/', $str, $re);
print_r($re[1]); // printing group 1, the reply number
print_r($re[2]); // printing group 2, the text
?>

Важный!!

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

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector