Пожалуйста, взгляните на следующую ситуацию ниже.
[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
тег, не работает после этого. Как я могу сделать это?
Я оставил универсальный (. *), Но вы можете указать тип, как десятичный (\ 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 "]
Легко!
\[reply\=\"(\d+)\"](.*?)\[\/reply]
\d
для цифры+
за 1 или более вхождений указанного символа.[\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
?>
Просто получите значение группы, а не все. В любом случае вам нужно только немного.