在PHP中使用正则表达式(preg_match)模式

3

我创建了一个在Dreamweaver的正则表达式查找中可用的正则表达式模式,但是当把它放到preg_match的模式中时,它会失败。我破坏了PHP(5.1.6)正则表达式规则中的什么,而这个规则在Dreamweaver的解释中是有效的?以下是PHP代码:

preg_match("/(\{a\})([a-zA-Z0-9{} .])+(\{/a\})/i", "{a}{900678}{abcde}{0}{0}{0}{/a}");

目前返回false。我该如何修改模式,使其匹配以 {a}任何内容在中间{/a} 类型的字符串?我意识到上面的正则表达式不会匹配中间的“任何内容”,但我简化了表达式以进行调试。


它不仅应该返回false,还应该返回一个错误消息。 - mario
1个回答

4

/a部分的斜杠被解释为表达式的结束定界符。你应该为整个模式使用另一个定界符,例如:

preg_match("~(\{a\})([a-zA-Z0-9{} .])+(\{/a\})~i",
           "{a}{900678}{abcde}{0}{0}{0}{/a}");

点击此处查看演示.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接