2

検索する文字列にドットの後にその正確な順序でいくつかの文字が含まれている場合、phpスクリプトがtrueまたはfalseを返すことができるようにする方法を探しています。

例えば:

私の文字列は: .htpassword

私のスクリプトは、ドットの後にいくつかのアルファベット文字がその順序でのみ続く配列内の文字列を見つけた場合にのみ、true を返します。

strpos() 関数を調べましたが、文字の後にドットが付いた文字を含むファイルがいくつかあるため、それは私のニーズには合いません。

有効な一致:

  • (ドット)(その後に任意のアルファベットが続く)

無効な一致:

  • (ドット)(ドット)(アルファベットの任意の文字が続く)
  • (一部の文字)(ドット)(一部の文字)

これまでに書いた私のスクリプト:

$arr_strings = $this->list_strings();

            $reg_expr_dot = '/\./';
            $match = array();

            foreach ($arr_strings as $string) {
                if (preg_match_all($reg_expr_dot, $file, $match) !== FALSE) {
                    echo "all strings: </br>";
                    echo $match[1] . "</br></br>";

                }
            }

助けてくれてありがとう!

敬具

4

3 に答える 3

1

質問を完全に理解しているかどうかはわかりませんが、/^\\.[a-zA-Z]+$/uあなたのニーズに合うはずです。

    $strings = $this->list_strings();
    $matches = array();

    foreach($strings as $string){
        if(preg_match("/^\\.[a-zA-Z]+$/u", $string)){
            $matches[] = $string;
        }
    }

    echo "all strings: </br>";

    foreach($matches as $match){
        echo $match."</br>"; 
    }

それがどうなるか教えてください。

于 2013-08-24T17:15:48.083 に答える
1

これを試してください/^\.[a-zA-Z]+/- 追加の基準がある場合はお知らせください。「。」と仮定しました。任意の小文字/大文字が続く

于 2013-08-24T17:04:32.797 に答える