0

編集済み

Web アプリケーション用のカスタム正規表現を作成するためにググったのですが、それでも欲しいものが得られません。

文字列がこのパターンに合格するかどうかを確認したい:

*STRING*STRING INCLUDING ALL CHARS*STRING INCLUDING ALL CHARS#

例えば:

*STRING*the first string تست یک*the second string تست دو#

TRUE を返す必要があります

*sdsdsd*the first string تست یکthe second string تست دو#

FALSE を返す必要があります (*STRING*STRING*STRING# のようなパターンではないため)

$check = preg_match("THE RULE", $STRING);

ここでTHE RULEを求めています。間違った方法で質問した場合は申し訳ありません...

4

2 に答える 2

2

正規表現は必要ありません。次を使用しますfilter_var()

function checkEmail($str){
    $exp = explode('*', $str);
    if(filter_var($exp[1], FILTER_VALIDATE_EMAIL) && $exp[2] && $exp[3] && substr($str, strlen($str)-1, strlen($str)) == '#') {
        return true;
    }
    return false;
}

$valid = checkEmail('*example@example.com*the first string تست یک*the second string تست دو#');
于 2012-09-24T10:59:45.803 に答える
1

文字列にこのパターンがあるかどうかを確認するには*STRING*STRING*STRING#::

if (preg_match(
    '/^       # Start of string
    \*        # Match *
    ([^*]*)   # Match any number of characters except *
    \*        # Match *
    ([^*]*)   # Match any number of characters except *
    \*        # Match *
    ([^#]*)   # Match any number of characters except #
    \#        # Match #
    $         # End of string/x', 
    $subject, $matches))

次に、

filter_var($matches[1], FILTER_VALIDATE_EMAIL)

最初のグループに電子メールアドレスが含まれているかどうかを確認します。

于 2012-09-24T11:06:44.913 に答える