1

我将如何使用正则表达式来检查以下文本字符串中的字符:

=== 徽标 ===

我尝试使用正则表达式测试器,但可以想出正确的表达式,因为我试过这个:

 /^[=]{3}$/
  1. 我想在字符串中搜索找到文本以 3 个等号开头的位置。
  2. 在等号内查找字符串或任何其他字符。
  3. 再找到 3 个等号.. 结束表达式。

提前致谢。

4

3 回答 3

4

尝试使用这个正则表达式:

/===[^=]+===/

如果要捕获文本,请将其括在括号中:

/===([^=]+)===/

这是小提琴:http: //jsfiddle.net/jufXA/


如果您的文本中可能有等号(但显然小于 3),则应该懒惰地匹配所有内容(这有点慢):

/===(.+?)===/

这是小提琴:http: //jsfiddle.net/jufXA/1/

于 2013-02-12T18:16:46.373 回答
2

怎么这么简单...

/===(.+?)===/

例如:_

$test = "here's ===something special===, like ===this=one===";
preg_match_all('/===(.+?)===/', $test, $matches);
var_dump($matches[1]);

懒惰在这里是一种美德:正则表达式引擎不会超过第一个“关闭分隔符===”。但是,如果没有?,您需要使用否定字符类(但话又说回来,那又如何===something=like=this===?)。

于 2013-02-12T18:16:50.140 回答
2

我更喜欢:

/([=]{3})\s*(.+?)\s*\1/.

这会将文本标记(三个等号)放在开头,然后在结尾处使用反向引用。它还会修剪您的空格文本,这可能是您想要的。

于 2013-02-12T18:23:37.873 回答