在PHP中将字符传递给正则表达式

时间:2011-12-27 12:25:28

标签: php regex

我想将像A,B,C,D这样的字符传递给PHP中的preg_match函数。
例如>

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

我想将A,B,C,D传递给$ char并循环比赛 请给我一个解决方案。

3 个答案:

答案 0 :(得分:2)

不需要循环。只需将$char替换为"[A-D]";即可。由于你用空格限制它,它将匹配空格中类[A-D]中的一个单个字符。

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

您可能还希望使用preg_match_all().

答案 1 :(得分:2)

只需使用字符串连接:

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

答案 2 :(得分:0)

如果您从用户输入获取角色,请使用preg_quote

$re = "/^SEQRES.*\s" . preg_quote($char) . "\s.*/";