phpエディタBananaは、一致しないマスクの開始部分文字列の長さを取得する方法を紹介します。 PHP では、preg_match 関数を正規表現と組み合わせて使用して、この機能を実現できます。まず、正規表現を使用して不要な文字と一致し、次に preg_match 関数を通じて一致する位置を取得し、最後に開始部分文字列の長さを計算します。これにより、一致しないマスクの開始部分文字列長を取得する関数の実装が容易になります。
質問: PHP で一致しないマスクの開始部分文字列の長さを取得する方法
######解決:######preg_match() 関数を使用します。この関数は、
正規表現 に一致する部分文字列の長さを返します。否定先読みアサーション (?!)
を使用すると、指定されたマスクに一致しない部分文字列を一致させることができます。
コード例:
$subject = "これはテスト文字列です"; $mask = "/(t.*)/"; $pattern = "/^(?:(?!$mask).)*$/"; preg_match($pattern, $subject, $matches); $length = strlen($matches[0]); ######説明する:######
preg_match()関数は、指定された文字列
$subject が正規表現 $pattern
と一致するかどうかをチェックします。$パターン
正規表現:
#^: 文字列の先頭を固定します。
: サブパターン (...) に一致しない任意の文字の 0 個以上の出現と一致します。
: 先読みアサーションを否定し、
$mask#$
: 文字列の末尾を固定します。
$matches
$matches[0]
は、一致しないマスクの開始部分文字列です。
######追加情報:######
マスク正規表現 $mask
が有効であることを確認してください。
最初に一致する文字が見つかるまで文字数をカウントする
strspn()
長い文字列の場合はより効率的です。
欠点:
複雑なマスク正規表現はサポートされていません。
以上がPHP マスクに一致しない開始部分文字列の長さを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。