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

时间:2010-02-08 10:49:33

标签: php

我有这个:

15_some_text_or_numbers;

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

示例:

  14_hello_world = 14

结果是数字14!

由于

3 个答案:

答案 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。