如果有的话,获取字符串中的第一个数字

时间:2016-02-02 16:31:04

标签: php string

我正在寻找一种从字符串中提取第一个数字的方法。这个例子

df<-data.frame(id=1:10, note=LETTERS[1:10], stringsAsFactors = F)

for (i in 1:5){
  x=sample(1:10,1)
  #print(x)
  print(df[match(x,df$id),2])
}

应该返回

    43
    432Phill 21
    432hill 21
    43#1 Example
    43,123 example

我假设可以使用 43 432 432 43 43,123 并从a-z,A-Z和#迭代针。得到所有位置,而不是使用最低的非零值来确定数字结束的点。这似乎有点矫枉过正。有没有更好的方法呢?

编辑:位置是稍后使用substr。如果有一种更好的方式,我会失望。

2 个答案:

答案 0 :(得分:3)

使用正则表达式,您可以从字符串中提取数字。

以下陈述应该起到作用:
preg_match_all('~\d+~', $string, $match);

$match$string中包含的数字数组。

答案 1 :(得分:1)

如果数字从头开始,你可以这样做:

$number = floatval($string); //it will return float e.g. 432

如果您使用逗号而不是小数点,例如43,123你必须先用点代替它:

$string = str_replace(',', '.', '43,123 example');