【发布时间】:2012-02-06 17:42:41
【问题描述】:
我有以下结构的字符串:
7_string_12
7_string2_122
7_string3_1223
如何在第二个“_”之前获取字符串?
我希望我的最终结果是:
7_string
7_string2
7_string3
我正在使用 explode('_', $string) 并结合前两个值,但我的脚本非常慢!
【问题讨论】:
标签: php string explode separator
我有以下结构的字符串:
7_string_12
7_string2_122
7_string3_1223
如何在第二个“_”之前获取字符串?
我希望我的最终结果是:
7_string
7_string2
7_string3
我正在使用 explode('_', $string) 并结合前两个值,但我的脚本非常慢!
【问题讨论】:
标签: php string explode separator
$str = '7_string_12';
echo substr($str,0,strrpos($str,'_'));
回声
7_string
不管字符串的开头是什么
【讨论】:
preg_match('/_(\S+)_/',$str,$m); echo $m[1];
7_string2_abc_123 不同,substr($str,0,strrpos($str,'_')) 是可以的。因为输出将是7_string2_abc。
如果它总是以 7_ 开头,你可以试试这个:
$string = substr($text, 0, strpos($text, '_', 2));
strpos() 从字符 3 开始搜索第一个 _(= 来自字符串的 s)。然后使用 substr() 选择从第一个字符开始到 strpos() 返回的字符的整个字符串。
【讨论】:
$s1 = '7_string_12';
echo substr($s1, 0, strpos($s1, '_', 2));
【讨论】: