我想知道如何查看我从字符串中提取的单个字符是否与字符列表中的任何一个匹配,我知道我可以通过迭代来做到这一点,但我不希望这样做。我也需要能够找到
我目前正在尝试这样做,preg_match()
但它似乎没有给我我需要我当前代码的结果:
const CHAR_LIST = '[abcdefghij+-/*&^]';
$start = //an arbitrary index that is after a character in the list
while(!(preg_match($this::CHAR_LIST, $expression[$start]) === 1))
{
$start--;
}
//after loop $start should be indexed to the character in the list
注意:我需要找到最接近我开始的任意索引的前面和最前面的特殊字符。
更新 我将实现更改为使用 strpos 和 strrpos,但我的代码仍然不起作用,strrpos 可以将符号处理为字符吗?更新代码如下:
const CHAR_LIST = '+-*/^rabcdefg';
$index = 5;//arbitrary point between where the symbols are
$start = strrpos(substr($expression,0,index-1),$this::CHAR_LIST);
$end = strpos(substr($expression,index+1),$this::CHAR_LIST);
index 是列表中的字符之一,这就是 strpos 和 strrpos 遍历它的原因。