从(1_2_3_4)获取第二个数字

时间:2014-02-18 17:36:31

标签: php regex

如何从如下所示的长字符串中获取第二个字符串:

1200_500_test_5.3_test2

:我想只得到第二部分形成这些单词或数字之间的_

3 个答案:

答案 0 :(得分:6)

如果你总是希望在第一个下划线后得到第二个数字,你甚至不需要正则表达式:

$numbers = explode( '_', '1200_500_test_5.3_test2' );
var_dump( $numbers[1] );

答案 1 :(得分:3)

您不需要使用正则表达式。只需使用explode

$input = '1200_500_test_5.3_test2';
$output = explode('_', $input, 3);
echo $output[1]; // 500

但是如果你必须使用正则表达式,请使用:

$input = '1200_500_test_5.3_test2';
preg_match('/(?<=_)[^_]+/', $input, $output);
echo $output[0]; // 500

或者这个:

$input = '1200_500_test_5.3_test2';
preg_match('/(?:(?:[^_]+)_)([^_]+)/', $input, $output);
echo $output[1]; // 500

获取第三组(将<{1}}替换为 n-1 以获取 n 组:

2

答案 2 :(得分:0)

试试这个

   $str  = "1200_500_test_5.3_test2";
   $pieces = explode('_', $str);
   echo $pieces[1];