我想将类似A,B,C,D这样的字符传递给PHP中的preg_match函数。
例如>将Charachter传递给PHP中的正则表达式
if (preg_match ("/^SEQRES.*\s$char\s.*/", $amino)) ;
我想通过匹配到B,C,d通过A,为$炭和循环。
请给我一个解决方案。
我想将类似A,B,C,D这样的字符传递给PHP中的preg_match函数。
例如>将Charachter传递给PHP中的正则表达式
if (preg_match ("/^SEQRES.*\s$char\s.*/", $amino)) ;
我想通过匹配到B,C,d通过A,为$炭和循环。
请给我一个解决方案。
不需要循环。只需将$char
替换为"[A-D]";
即可。既然你已经用空格来限制它,它将匹配空间之间的类[A-D]
中的单个字符。
if (preg_match ("/^SEQRES.*\s[A-D]\s.*/", $amino)) ;
您也不妨使用preg_match_all()
.
非常感谢你。 – Geeky 2011-12-27 12:42:38
只需使用字符串连接:
$re = "/^SEQRES.*\s" . $char . "\s.*/";
if (preg_match($re, $amino))
....
它的工作,谢谢 – Geeky 2011-12-27 12:42:21
使用preg_quote
如果你正在从用户输入的字符:
$re = "/^SEQRES.*\s" . preg_quote($char) . "\s.*/";
欢迎堆栈溢出。您可以使用工具栏按钮格式化源代码。这次我为你做了。 – 2011-12-27 12:27:05
这4个字符中的每一个都应该匹配还是只匹配一个?如果很多,应该允许那些字符的组合?你需要知道哪些字符匹配? – hakre 2011-12-27 12:34:35
只有一个字符被放置在$ char。连接解决了这个问题。谢谢。 – Geeky 2011-12-27 12:50:09