2

我已经学习 PHP 一段时间了,我想澄清一下。

我已经看到preg_match使用不同的定界符号调用的函数,例如:

preg_match('/.../')

preg_match('#...#')

今天我也看到%被使用了。

我的问题分为两部分:

什么字符都可以用?

并且有标准吗?

4

1 回答 1

4

任何

  • 非字母数字
  • 非空白和
  • 非反斜杠 ASCII 字符

可以用作分隔符。

此外,如果您使用开始标点符号作为开始分隔符:

( { [ <

那么它们相应的结束标点符号必须用作结束分隔符:

) } ] >

最常见的分隔符是/.
但有时如果 a/是正则表达式的一部分,建议使用不同的分隔符。

例子:

// check if a string is number/number format:
if(preg_match(/^\d+\/\d+$/)) {
  // match
}

由于正则表达式包含分隔符,因此您必须转义在正则表达式中找到的分隔符。

为了避免转义,最好选择一个不同的分隔符,一个在正则表达式中不存在的分隔符,这样你的正则表达式会更短更清晰

if(preg_match(#^\d+/\d+$#)) 
于 2010-12-04T06:56:49.283 回答