2

我无法知道该-字符在我的字符串前面有多少次。

一些例子:

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

但我怎么能找到这个?我知道您可以搜索字符串中某个字符的出现次数。但我想要-字母前的字符数。不是所有的序列(见最后一个例子)。

我应该如何处理这个?

4

3 回答 3

3

您可以在这里使用老式的将字符串用作数组的技巧:

$search="-";
$i=0;
while($string[$i]==$search)
{
    $i++;
}
echo "Found $i instances at the start of the string.";
于 2014-09-19T12:05:19.530 回答
1

如何使用ltrim()strlen()

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

请参阅eval.in 中的示例

于 2014-09-19T12:15:07.270 回答
0

它也可以工作 -

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

$match- 任何字符的位置,但-它确实是-.

于 2014-09-19T12:26:44.060 回答