从字符串中提取一个单独的(无符号)整数

396

我想从包含数字和字母的字符串中提取数字:

"In My Cart : 11 items"

我想提取数字 11

23个回答

-2
根据您的使用情况,这也可能是一个选项:
$str = 'In My Cart : 11 items';
$num = '';

for ($i = 0; $i < strlen($str); $i++) {

    if (is_numeric($str[$i])) {
        $num .= $str[$i];
    }
}

echo $num; // 11

虽然我同意在所述情况下,正则表达式或 filter_var() 更有用。


-2

这个函数也可以处理浮点数

$str = "Doughnuts, 4; doughnuts holes, 0.08; glue, 3.4";
$str = preg_replace('/[^0-9\.]/','-', $str);
$str = preg_replace('/(\-+)(\.\.+)/','-', $str);
$str = trim($str, '-');
$arr = explode('-', $str);

将连字符引入此过程是完全不必要的。此答案还缺乏关于它如何工作以及为什么您认为这是一个好主意的解释。 - mickmackusa

-3

这个脚本首先创建一个文件,将数字写入一行,如果遇到非数字字符,则换到下一行。最后,它再次将数字整理到一个列表中。

string1 = "hello my name 12 is after 198765436281094and14 and 124de"
f= open("created_file.txt","w+")
for a in string1:
    if a in ['1','2','3','4','5','6','7','8','9','0']:
        f.write(a)
    else:
        f.write("\n" +a+ "\n")
f.close()


#desired_numbers=[x for x in open("created_file.txt")]

#print(desired_numbers)

k=open("created_file.txt","r")
desired_numbers=[]
for x in k:
    l=x.rstrip()
    print(len(l))
    if len(l)==15:
        desired_numbers.append(l)


#desired_numbers=[x for x in k if len(x)==16]
print(desired_numbers)

1
这个问题似乎是一个关于 PHP 的问题。 - ALZlper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接