2011-12-27 72 views
0

我想将类似A,B,C,D这样的字符传递给PHP中的preg_match函数。
例如>将Charachter传递给PHP中的正则表达式

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

我想通过匹配到B,C,d通过A,为$炭和循环。
请给我一个解决方案。

+1

欢迎堆栈溢出。您可以使用工具栏按钮格式化源代码。这次我为你做了。 – 2011-12-27 12:27:05

+0

这4个字符中的每一个都应该匹配还是只匹配一个?如果很多,应该允许那些字符的组合?你需要知道哪些字符匹配? – hakre 2011-12-27 12:34:35

+0

只有一个字符被放置在$ char。连接解决了这个问题。谢谢。 – Geeky 2011-12-27 12:50:09

回答

2

不需要循环。只需将$char替换为"[A-D]";即可。既然你已经用空格来限制它,它将匹配空间之间的类[A-D]中的单个字符。

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

您也不妨使用preg_match_all().

+0

非常感谢你。 – Geeky 2011-12-27 12:42:38

2

只需使用字符串连接:

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

它的工作,谢谢 – Geeky 2011-12-27 12:42:21

0

使用preg_quote如果你正在从用户输入的字符:

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