多个 strpos 可能吗?

Multiple strpos possible?

我想看看我的字符串是否包含 {: 以及 } 如果是的话 returns 是真的,但我在这里遗漏了一些东西。

$string = "{12345:98765}";

if(strpos($string,'{*:*}')== true) {

echo "string is good";

}

想法?

if (strpos($string,'{') !== false && strpos($string,'}') !== false) {
    echo "string is good";
}

strpos不接受正则表达式,不允许你在一条语句中找多根针

此外,您的正则表达式将不起作用。它需要看起来像这样:

{\d+:\d+}

也就是说,如果您只处理数字。如果可以是字母或数字,则将 \d 替换为 \w,如果可以是任何字符,则将其替换为 .+ 表示一个或多个字符。如果大括号可以包含零个或多个字符,则将其替换为 *

if(preg_match('/{\d+:\d+}/', $string)) {
    echo 'string is good.';
}

怎么样:

if (preg_match('/\{.*?:.*?\}/', $string)) {
    echo 'string is good.';
}

其中:

/
  \{    : openning curly brace (must be escaped, it' a special char in regex)
  .*?   : 0 or more any char (non greeddy)
  :     : semicolon
  .*?   : 0 or more any char (non greeddy)
  \}    : closing curly brace (must be escaped, it' a special char in regex)
/