我有这个:
15_some_text_or_numbers;
我想在第一个下划线前面看到什么。 第一个下划线后面总会有一个字母。
示例:
14_hello_world = 14
结果是数字14!
由于
答案 0 :(得分:10)
如果前面有总是数字,您可以使用
echo (int) '14_hello_world';
请参阅String conversion to integers in the PHP manual
上的条目这是没有类型转换的版本:
$str = '14_hello_1world_12';
echo substr($str, 0, strpos($str, '_'));
请注意,如果未找到下划线,则不会返回任何内容。如果找到,返回值将是一个字符串,而类型转换的结果将是一个整数(不是很重要)。如果您不想在没有下划线的情况下返回整个字符串,则可以使用
$str = '14_hello_1world_12';
echo str_replace(strstr($str, '_'), '', $str);
从PHP5.3开始,你也可以使用strstr
并将$before_needle
设置为true
echo strstr('14_hello_1world_12', '_', true);
注意:由于PHP中从字符串到整数的类型转换遵循明确定义且可预测的行为,并且此行为遵循Unix自身strtod
的混合字符串规则,我看不出第一个方法是滥用类型转换。
答案 1 :(得分:5)
preg_match('/^(\d+)/', $yourString, $matches);
$matches[1]
将保留您的价值
答案 2 :(得分:1)
比正则表达式更简单:
$x = '14_hello_world';
$split = explode('_', $x);
echo $split[0];
输出14。