Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将Charachter传入Regex_Php_Regex - Fatal编程技术网

在PHP中将Charachter传入Regex

在PHP中将Charachter传入Regex,php,regex,Php,Regex,我想将像A、B、C、D这样的字符传递给PHP中的preg_match函数。 例> 我想将A、B、C、D传递给$char并循环匹配。 请给我一个解决方案。不需要循环。只需将$char替换为“[A-D]”。由于已使用空格将其限定,因此它将在类[A-D]中的空格之间匹配一个字符 if (preg_match ("/^SEQRES.*\s[A-D]\s.*/", $amino)) ; 您也可以使用无需循环。只需将$char替换为“[A-D]”。由于已使用空格将其限定,因此它将在类[A-D]中的空格之间

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

我想将A、B、C、D传递给$char并循环匹配。

请给我一个解决方案。

不需要循环。只需将
$char
替换为
“[A-D]”。由于已使用空格将其限定,因此它将在类
[A-D]
中的空格之间匹配一个字符

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

您也可以使用

无需循环。只需将
$char
替换为
“[A-D]”。由于已使用空格将其限定,因此它将在类
[A-D]
中的空格之间匹配一个字符

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

您可能还希望使用

仅使用字符串连接:

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

只需使用字符串连接:

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

如果要从用户输入中获取字符,请使用
preg_quote

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

如果要从用户输入中获取字符,请使用
preg_quote

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

欢迎来到堆栈溢出。您可以使用
{}
工具栏按钮格式化源代码。这一次我是为你做的。这4个字符中的每一个都应该匹配,还是只有一个?如果很多,是否允许这些字符的组合?您需要知道哪些字符匹配吗?只需将一个字符放在$char处。串联解决了这个问题。谢谢。欢迎来到Stack Overflow。您可以使用
{}
工具栏按钮格式化源代码。这一次我是为你做的。这4个字符中的每一个都应该匹配,还是只有一个?如果很多,是否允许这些字符的组合?您需要知道哪些字符匹配吗?只需将一个字符放在$char处。串联解决了这个问题。非常感谢。