请看下面的情况。
[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 :(得分:1)
容易!
\[reply\=\"(\d+)\"](.*?)\[\/reply]
\d
for digit +
出现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
?>
获取组值,而不是全部。无论如何你只需要一些。
答案 1 :(得分:1)
我留下了通用(。*),但您可以指定类似十进制(\ 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 "]