【问题标题】:Get first string before separator?在分隔符之前获取第一个字符串?
【发布时间】: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


    【解决方案1】:
    $str = '7_string_12';
    echo substr($str,0,strrpos($str,'_'));
    

    回声

    7_string
    

    不管字符串的开头是什么

    【讨论】:

    • 谢谢!我还有一个问题!如何使此代码向我显示以下结果:字符串?即在分隔符之间显示字符串。提前致谢!
    • @dilyan_kn preg_match('/_(\S+)_/',$str,$m); echo $m[1];
    • 请注意,如果输入与7_string2_abc_123 不同,substr($str,0,strrpos($str,'_')) 是可以的。因为输出将是7_string2_abc
    【解决方案2】:

    如果它总是以 7_ 开头,你可以试试这个:

    $string = substr($text, 0, strpos($text, '_', 2));
    

    strpos() 从字符 3 开始搜索第一个 _(= 来自字符串的 s)。然后使用 substr() 选择从第一个字符开始到 strpos() 返回的字符的整个字符串。

    【讨论】:

      【解决方案3】:
      $s1 = '7_string_12';
      echo substr($s1, 0, strpos($s1, '_', 2));
      

      【讨论】:

      • 第一个标记总是一个字符长的假设有点危险。
      猜你喜欢
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      • 2011-07-31
      • 2022-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      相关资源
      最近更新 更多