Сколько раз & quot; — & quot; в начале строки (перед буквой алфавита)

У меня возникают проблемы, зная, сколько раз - персонаж находится в фронт моей строки.

Некоторые примеры:

$string = "-Lorem Ipsum";   // 1
$string = "--Lorem Ipsum";  // 2
$string = "---Lorem Ipsum"; // 3
$string = "--Lorem-Ipsum";  // 2

Но как я могу найти это? Я знаю, что вы можете искать количество вхождений символа в строке. Но я хочу количество - символы перед буквой алфавита. Не все последовательности (см. Последний пример).

Как мне подойти к этому?

2

Решение

Вы можете использовать хитрость старой школы использования строки в качестве массива здесь как таковой:

$search="-";
$i=0;
while($string[$i]==$search)
{
$i++;
}
echo "Found $i instances at the start of the string.";
3

Другие решения

Как насчет использования ltrim() а также strlen()

echo strlen($string) - strlen(ltrim($string, "-"));

Увидеть пример на eval.in

1

это также будет работать —

preg_match('/(?!-)/', $string, $match, PREG_OFFSET_CAPTURE);

$match — позиция любого персонажа, кроме - что на самом деле количество -,

0