使用正则表达式

正则表达式可能会慢一点,尽管这在大多数情况下可能无关紧要。
我会使用我最喜欢使用的任何东西。

我们也可以使用 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 '字符串不是以双斜杠开头。';
}
在 PHP 中检查字符串是否以某个子字符串开头

当检查一个字符串是否以另一个字符串开头时,即使只有一个字符,我们也可以使用带有 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