我需要使用正则表达式模式,但什么是正确的PHP“解码”。我的模式与BBcode“相似”,即['something']'something'可能是“任意长度”,但实际上我怀疑不超过10个字符/数字。什么是正确的PHP语法“unscrambe”,即php - 正则表达式模式
if ($row->xyz =['something']):
do this
else:
do that
endif;
在此先感谢
我需要使用正则表达式模式,但什么是正确的PHP“解码”。我的模式与BBcode“相似”,即['something']'something'可能是“任意长度”,但实际上我怀疑不超过10个字符/数字。什么是正确的PHP语法“unscrambe”,即php - 正则表达式模式
if ($row->xyz =['something']):
do this
else:
do that
endif;
在此先感谢
一个基本的正则表达式匹配BBCode的风格标签将是这个样子:
preg_match('/\[[\/]?[A-Za-z0-9]+\]/', $row->xyz)
这将匹配任何以“[”开头,以“]”结尾,中间有一个或多个字母数字字符(对于结束标签有一个可选的“/”)。注意它有缺陷 - 例如,如果您有一个嵌套的“[...]”在一个更大的“[...]”,它只会抓住内在的一个。 (即[富[栏]将只返回 “[巴]”。)
例子:
<?php
$regexp = '/\[[\/]?[A-Za-z0-9]+\]/';
$testString = '[i]An italic string with some [b]bold[/b] text.[/i]';
preg_match_all($regexp, $testString, $result);
print_r($result);
?>
结果:
array(1) {
[0]=> array(4) {
[0]=> string(3) "[i]"
[1]=> string(3) "[b]"
[2]=> string(4) "[/b]"
[3]=> string(4) "[/i]"
}
}
当然,我不知道这是你实际上想要做什么意思是,但这是你说你想要做的。你确定你想找到BBCodes,而不是找到包裹在它们中的字符串吗?
你是对的;) – 2010-08-15 09:10:52
Actualy Stephen找到“包裹的字符串”也会很有趣,但你回答了这个问题 - 谢谢 – user351657 2010-08-15 12:30:33
什么是一些示例字符串? – 2010-08-15 08:56:58