如何使用php获取行的第一个非空白字符
我有一行,通常以几个空格开始,因为这些行在列中,并使用单空格字体使事情排列起来。我想检查第一个非空格字符(甚至是第一个不是空格的字符)是否是数字。执行此操作的服务器密集度最低的方法是什么?您可以使用如何使用php获取行的第一个非空白字符,php,whitespace,Php,Whitespace,我有一行,通常以几个空格开始,因为这些行在列中,并使用单空格字体使事情排列起来。我想检查第一个非空格字符(甚至是第一个不是空格的字符)是否是数字。执行此操作的服务器密集度最低的方法是什么?您可以使用trim()(或在本例中使用ltrim())删除空白,并利用字符串的数组访问: $line = ltrim($line); is_numeric($line[0]); 可以使用正则表达式: if (preg_match('/^\s*(\S)/m', $line, $match)) { var
trim()
(或在本例中使用ltrim()
)删除空白,并利用字符串的数组访问:
$line = ltrim($line);
is_numeric($line[0]);
可以使用正则表达式:
if (preg_match('/^\s*(\S)/m', $line, $match)) {
var_dump($match[0]);
}
或者删除开头的空白,然后获得第一个字符:
$line_clean = ltrim($line);
var_dump(substr($line_clean, 0, 1));
试试正则表达式:
$Line = ...;
preg_match('/^[:space:]*(.)/', $Line, $matches);
$FirstChar = $matches[0];
如果能就我的答案被否决的原因得到评论,那就太好了。谈谈明目张胆的“战略否决权”。嘘。
$Line = ...;
preg_match('/^[:space:]*(.)/', $Line, $matches);
$FirstChar = $matches[0];
if (preg_match('/^\s*\d/', $line)) {
// ^ starting at the beginning of the line
// \s* look for zero or more whitespace characters
// \d and then a digit
}