2012-02-16 10 views
1

私はfrontlinesmsによって呼び出されるphpスクリプトに取り組んでおり、文法を設定しています。 文法は文法上のPHPの正規表現

<phrase> @ <phrase> 
<phrase> = are a series of words composed of [a-zA-Z0-9] 

と@ 1回だけ発生し、私はこれを動作するように見えることはできません2

の間であるべきだろう。ここに私の最初のコードは次のとおりです。

preg_match_all("/(^[a-zA-Z0-9])@([a-zA-Z0-9])$/", $message_content, $matches, PREG_OFFSET_CAPTURE); 
print_r($matches); 

$message_content 

は、文字列

編集が含まれています。私はここでやりたいことの$ MESSAGE_CONTENTに保存された入力文字列がある与えられた文法の規則に従っているかどうかをチェックすることです@。 print_r($ matches)がArray()を出力している間、真または偽の戻り値が必要です。 regexで

答えて

1

がhiこの

preg_match_all("/^([A-Za-z0-9 ]+)@([A-Za-z0-9 ]+)$/", $message_content, $matches, PREG_OFFSET_CAPTURE); 
print_r($matches); 
+0

こんにちは!文字列が文法に基づいて有効かどうかはまだチェックできないようです。 – braindead

+0

「文法に基づいて」とはどういう意味ですか? –

+0

文法の規則に従って入力が正しいかどうかを返さないようです。 – braindead

1

にのみ、このインスタンス内の1つ以上の英数字(+が前のものの一つ以上を意味

^([A-Za-z0-9 ]+)@([A-Za-z0-9 ]+)$ 
を試してみてください @

の一つの文字のいずれかの側に一致しますか空白文字)

後者が2つのスペースを削除することを意味する場合は、 "一連の単語"( "一連の単語文字"ではなく)と言ってスペースを含めました。

+0

を試してみてください! print_rの出力は前の正規表現を使用しても同じです それでもパターンが正しいかどうかはチェックされません – braindead

+0

今すぐ取得します。ありがとう! – braindead