如何从如下所示的长字符串中获取第二个字符串:
1200_500_test_5.3_test2
:我想只得到第二部分形成这些单词或数字之间的_
。
答案 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];