2011-12-27 7 views
0

A、B、C、Dのような文字をPHPのpreg_match関数に渡したいと思います。
例えば、>PHPでRegexに文字を渡す

if (preg_match ("/^SEQRES.*\s$char\s.*/", $amino)) ; 

Iマッチを通して$チャーとループA、B、C、Dを通過したいです。
私に解決策を教えてください。

+1

へようこそをスタックオーバーフロー。 '{}'ツールバーボタンでソースコードを書式設定することができます。私は今度あなたのためにそれをしました。 –

+0

これらの4文字はすべて一致する必要がありますか?多くの場合は、それらの文字の組み合わせを許可する必要がありますか?あなたはどのキャラクターがマッチしているかを知る必要がありますか? – hakre

+0

$ charには1文字しか配置できません。連結は問題を解決しました。ありがとうございました。 – Geeky

答えて

2

ループは必要ありません。単に$char"[A-D]";に置き換えてください。スペースで区切っているので、スペースの間のクラス[A-D]の1文字に一致します。

if (preg_match ("/^SEQRES.*\s[A-D]\s.*/", $amino)) ; 

はまた、単に文字列の連結を使用しpreg_match_all().

+0

ありがとうございます。 – Geeky

2

を使用したい場合があります。

$re = "/^SEQRES.*\s" . $char . "\s.*/"; 
if (preg_match($re, $amino)) 
    .... 
+0

それは働いた、ありがとう – Geeky

0

使用しますが、ユーザーの入力から文字になっている場合preg_quote

$re = "/^SEQRES.*\s" . preg_quote($char) . "\s.*/"; 
関連する問題