如何使用正则表达式检查以下文本字符串中的字符:
=== logo ===
我尝试使用正则表达式测试程序,但我可以想出正确的表达式,我试过这个:
/^[=]{3}$/
提前致谢。
答案 0 :(得分:4)
尝试使用此正则表达式:
/===[^=]+===/
如果要捕获文本,请将其括在括号中:
/===([^=]+)===/
这是小提琴:http://jsfiddle.net/jufXA/
如果你的文字中可能有相同的符号(但显然小于3)你应该懒得匹配所有东西(这有点慢):
/===(.+?)===/
答案 1 :(得分:2)
如此简单......
/===(.+?)===/
$test = "here's ===something special===, like ===this=one===";
preg_match_all('/===(.+?)===/', $test, $matches);
var_dump($matches[1]);
懒惰在这里是一种美德:正则表达式引擎无法超越第一个结束分隔符===
'。但是,如果没有?
,则需要使用否定的字符类(但是,再次,===something=like=this===
怎么办?)。
答案 2 :(得分:2)
我更喜欢:
/([=]{3})\s*(.+?)\s*\1/.
这会将文本标记(三个等号)放在开头,然后只使用后向引用作为结尾。它还会修剪你的空间文本,这是你可能想要的。