【问题标题】:Select only one character from a string从字符串中只选择一个字符
【发布时间】:2012-09-25 16:36:31
【问题描述】:

我有一个字符串变量,看起来像这样:fasdhkfsdk, 1 sdfs

字符串中前后字符的数量会有所不同,但逗号和二进制值会一直存在(值会从1变为0)。

我需要一种方法将二进制值左右的所有内容都切掉,只留下 1 或 0。两边的字符数量确实会发生变化,所以我认为我不能使用 substr 或爆炸,但我可能是错的

非常感谢

附言是的,二进制数字前总会有一个逗号和一个空格

【问题讨论】:

  • 二进制文件前总是有逗号吗?
  • 那会是字符串中唯一的逗号吗?
  • 那会是唯一的数字字符吗,它周围总是有空格吗?
  • trimming a string in php 的可能重复项

标签: php string trim


【解决方案1】:

示例 1sscanf

$string = "fasdhkfsdk, 1 sdfs" ;
$part = sscanf($string, "%s %d %s");
echo $part[1];

sscanf 的另一个示例

$string = "fasdhkfsdk, 1 sdfs" ;
$part = sscanf($string, "%s %d %s",$prifix,$number,$sufix);
print($number);


示例 2 preg_match_all

$string = "fasdhkfsdk, 1 sdfs" ;
preg_match_all('!\d+!', $string, $matches);
print($matches[0][0]);


示例 3 filter_var

$string = "fasdhkfsdk, 1 sdfs" ;
$int = filter_var($string, FILTER_SANITIZE_NUMBER_INT);
print($int);


示例 4 substr 和 strrpos

//credit: slugonamission

$string = "fasdhkfsdk, 1 sdfs" ;
echo trim(substr($string , strrpos($string,",") + 1 ,2));


输出

 1 

【讨论】:

    【解决方案2】:

    你可以像这样使用正则表达式:

    $string = "fasdhkfsdk, 1 sdfs";
    echo preg_replace("[^01]", "", $string);
    

    这将删除除 0 和 1 之外的所有内容,如果您确定字符串将仅是字母表中的字符

    【讨论】:

      【解决方案3】:

      你应该试试regular expressions。

      【讨论】:

      • 正则表达式对此完全是矫枉过正。你知道逗号会在那里,所以在逗号上运行strrpos 并使用substring。
      • @slugonamission 但我们不知道这是否是唯一的逗号!
      • 我通常假设在这种情况下它会:P.
      • @slugonamission 不错的选择 .. 刚刚将其添加到我的答案的一部分
      【解决方案4】:

      试试这个:首先分解字符串,比如 $r = explode(",",$string)

      然后只需访问数组 $r 的第二部分并获取第二个字符。

      echo $r[1][1];
      

      或类似的东西。

      【讨论】:

        【解决方案5】:

        您只想要二进制值对吗?你想知道它是 1 还是 0。 试试

        $ar = explode(",", "fasdhkfsdk, 1 sdfs"); // split on the comma
        echo(intval($ar[1])); // convert everything after the comma to an int.  should be 0 or 1
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-03
          • 1970-01-01
          • 1970-01-01
          • 2014-02-21
          • 2018-05-25
          相关资源
          最近更新 更多