我想从下面的文字中返回字符串“This is table one”:
$string = '[section title="<italic>This is table one</italic>"]'
使用
preg_match_all("@\[section title\=\<italic\>\"(\S+ )\<\/italic\>\"\]@s", $string, $match);
但是,我只能用一个单词返回。如何使用包含间距数字或特殊字符的规则?
由于
答案 0 :(得分:0)
您可以尝试使用此正则表达式来获取字符串This is table one
,
(?<==\"<italic>)[^"]*(?=<\/italic>)
OR
\[section title="<italic>\K[^"]*(?=<\/italic>)
PHP代码将是,
<?php
$string = '[section title="<italic>This is table one</italic>"]';
$regex = '~\[section title="<italic>\K[^"]*(?=<\/italic>)~';
preg_match_all($regex, $string, $matches);
var_dump($matches);
?>
输出:
array(1) {
[0]=>
array(1) {
[0]=>
string(17) "This is table one"
}
}
<强>解释强>
\[section title="<italic>
匹配字符串[section title="<italic>
\K
会丢弃以前匹配的字符,因此会丢弃上面匹配的字符。[^"]*(?=<\/italic>)
匹配任何不是"
双引号的字符零次或多次直至字符串</italic>
答案 1 :(得分:0)