我将如何使用正则表达式来检查以下文本字符串中的字符:
=== 徽标 ===
我尝试使用正则表达式测试器,但可以想出正确的表达式,因为我试过这个:
/^[=]{3}$/
- 我想在字符串中搜索找到文本以 3 个等号开头的位置。
- 在等号内查找字符串或任何其他字符。
- 再找到 3 个等号.. 结束表达式。
提前致谢。
尝试使用这个正则表达式:
/===[^=]+===/
如果要捕获文本,请将其括在括号中:
/===([^=]+)===/
这是小提琴:http: //jsfiddle.net/jufXA/
如果您的文本中可能有等号(但显然小于 3),则应该懒惰地匹配所有内容(这有点慢):
/===(.+?)===/
这是小提琴:http: //jsfiddle.net/jufXA/1/
怎么这么简单...
/===(.+?)===/
例如:_
$test = "here's ===something special===, like ===this=one===";
preg_match_all('/===(.+?)===/', $test, $matches);
var_dump($matches[1]);
懒惰在这里是一种美德:正则表达式引擎不会超过第一个“关闭分隔符===
”。但是,如果没有?
,您需要使用否定字符类(但话又说回来,那又如何===something=like=this===
?)。
我更喜欢:
/([=]{3})\s*(.+?)\s*\1/.
这会将文本标记(三个等号)放在开头,然后在结尾处使用反向引用。它还会修剪您的空格文本,这可能是您想要的。