【问题标题】:Beginner PHP help needed需要初级 PHP 帮助
【发布时间】:2010-12-04 06:55:25
【问题描述】:

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

我看到preg_match 函数使用不同的分隔符号调用,例如:

preg_match('/.../')

和

preg_match('#...#')

今天我还看到% 被使用。

我的问题分为两部分:

什么字符都可以用?

有标准吗?

【问题讨论】:

    标签: php regex preg-match delimiter


    【解决方案1】:

    任意

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

    可以用作分隔符。

    如果您使用 开头 标点符号作为开头分隔符:

    ( { [ <
    

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

    ) } ] >
    

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

    例子:

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

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

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

    if(preg_match(#^\d+/\d+$#)) 
    

    【讨论】:

    • 补充一句:如果你没有使用开始/结束标点符号,那么你的表达式中的第一个字符必须与最后一个字符相同,否则会出错。
    猜你喜欢
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 2021-04-11
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多