使用正则表达式
正则表达式可能会慢一点,尽管这在大多数情况下可能无关紧要。
我会使用我最喜欢使用的任何东西。
我们也可以使用 preg_match 来检查一个字符串是否以另一个字符串开头,为此,我们应该使用这样的模式 /^something/,“^”插入符号标记字符串的开头。
但是,由于我们正在寻找双破折号,我们真的应该使用这个 /^///。
注意正斜杠“/”前面的反斜杠字符“\”;这些是转义正斜杠所必需的,因为它在正则表达式中具有特殊含义。
if (preg_match('/^\/\//', $str)) { return 'The string contains double dash at the beginning.'; } else { return 'The string did not begin with double dash.'; }
PHP 有一个名为 preg_quote 的函数,用于对正则表达式中的字符进行转义;使用它比手动转义特殊字符更容易。
preg_quote 函数应该只用于正则表达式的相关部分:
$string = preg_quote('//'); if (preg_match('/^'. $string .'/', $str)) { return '字符串以双斜杠开头。'; } else { return '字符串不是以双斜杠开头。'; }
当检查一个字符串是否以另一个字符串开头时,即使只有一个字符,我们也可以使用带有 preg_match 的正则表达式,或者我们可以使用字符串函数。
字符串函数通常被认为比使用正则表达式更快。
如果我们使用 preg_match 或者 stripos 并不重要,因为两者之间的速度差异确实很小。
以下代码检查给定字符串的开头是否包含双破折号“//”,或者更确切地说,在位置零“0”处。
stripos 函数将在成功时返回字符串的位置,如果未找到字符串则返回 false:
$str = '//something/more'; if (stripos($str, '//') === 0) { echo 'The string contains double dash at the beginning.'; } else { echo 'The string did not begin with double dash.'; } exit();
从 PHP 8 开始,我们可以使用 str_starts_with 函数:
if(str_starts_with('PHP is cool', 'PHP')) { echo 'The string begins with PHP'; }
日期:2020-06-02 22:16:48 来源:oir作者:oir