用php获取'下划线'前面的数字

4 php

我有这个:

15_some_text_or_numbers;
Run Code Online (Sandbox Code Playgroud)

我想在第一个下划线前面看到什么.第一个下划线后面总会有一个字母.

例:

  14_hello_world = 14
Run Code Online (Sandbox Code Playgroud)

结果是14号!

谢谢

Gor*_*don 10

如果前面总是有一个数字,你可以使用

echo (int) '14_hello_world';
Run Code Online (Sandbox Code Playgroud)

请参阅PHP手册中有关String转换为整数的条目

这是一个没有类型转换的版本:

$str = '14_hello_1world_12';
echo substr($str, 0, strpos($str, '_'));
Run Code Online (Sandbox Code Playgroud)

请注意,如果未找到下划线,则不会返回任何内容.如果找到,返回值将是一个字符串,而类型转换的结果将是一个整数(不是很重要).如果您不想在没有下划线的情况下返回整个字符串,则可以使用

$str = '14_hello_1world_12';
echo str_replace(strstr($str, '_'), '', $str);
Run Code Online (Sandbox Code Playgroud)

作为PHP5.3的你也可以使用strstr$before_needle设置为true

echo strstr('14_hello_1world_12', '_', true);
Run Code Online (Sandbox Code Playgroud)

注意:由于PHP中从字符串到整数的类型转换遵循明确定义且可预测的行为,并且此行为遵循Unix自己strtod的混合字符串规则,我看不出第一种方法是如何滥用类型转换.


RaY*_*ell 5

preg_match('/^(\d+)/', $yourString, $matches);
Run Code Online (Sandbox Code Playgroud)

$matches[1] 将保持你的价值

  • 我确定.`[0]`将保存整个匹配的字符串,而`[1]`将具有第一组值(括号) (3认同)