初级PHP帮助需要
问题描述:
我一直在学习PHP一段时间,我想澄清一下。初级PHP帮助需要
我所见过的preg_match
函数调用不同的分界符号,如:
preg_match('/.../')
和
preg_match('#...#')
今天我也看到%
被使用。
我的问题是两个部分:
有什么可以使用的所有字符?
有没有标准?
答
不限
- 非字母数字
- 非空白和
- 非反斜杠ASCII字符
可以用作分隔符。
此外,如果你使用开幕标点符号的开始分隔符:
({ [ <
那么其对应的关闭标点符号必须作为结束分隔符:
) } ] >
最常见分隔符是/
。
但是有时如果/
是正则表达式的一部分,建议使用不同的分隔符。
例子:
// check if a string is number/number format:
if(preg_match(/^\d+\/\d+$/)) {
// match
}
由于正则表达式中包含的分隔符,你必须逃脱在正则表达式中的分隔符。
为了避免逃逸,最好是选择不同的分隔符,一个是不存在的正则表达式,这样,你的正则表达式将是更短和更清洁的:
if(preg_match(#^\d+/\d+$#))
+0
只需添加:如果您未使用开启/关闭标点符号,则表达式中的第一个字符必须与最后一个字符相同,否则会出现错误。 – 2010-12-04 07:00:43
这只是一个品味的问题。 – 2010-12-04 07:52:12