我试图使用REGEX从左边和右边获取$str
变量的输入。但我一直把逗号和整数一起拿回来。我只想要整数而不是逗号。我还尝试用[{1}}替换通配符.
,但仍无法解决。
\d
答案 0 :(得分:0)
鉴于你的功能名称,我假设你需要这个用于分页。
以下解决方案可能更容易:
$str = "1,2,3,4,5,6,7,8,9,10";
$str_parts = explode(',', $str);
// reset and end return the first and last element of an array respectively
$start = reset($str_parts);
$end = end($str_parts);
这可以防止你的正则表达式处理你的数字进入两位数。
答案 1 :(得分:0)
我相信您正在寻找Regex Non Capture Group
这就是我的所作所为:
$regStr = "1,2,3,4,5,6";
$regex = "/(\d)(?:,)(4)(?:,)(\d)/";
preg_match($regex, $regStr, $results);
print_r($results);
给我结果:
Array ( [0] => 3,4,5 [1] => 3 [2] => 4 [3] => 5 )
希望这有帮助!
答案 2 :(得分:0)
如何使用CSV解析器?
$str = "1,2,3,4,5,6";
$line = str_getcsv($str);
$target = 4;
foreach($line as $key => $value) {
if($value == $target) {
echo $line[($key-1)] . '<--low high-->' . $line[($key+1)];
}
}
输出:
3<--low high-->5
或正则表达式可能
$str = "1,2,3,4,5,6";
preg_match('/(\d+),4,(\d+)/', $str, $matches);
echo $matches[1]."<--low high->".$matches[2];
输出:
3<--low high->5
这些方法的唯一缺陷是数字是范围的开始还是结束。会不会是这样的?