如何解析输入语句并提取字符串中的数字存入变量?
从字符串中提取数字并存入变量的方法
嘿,这个需求太普遍啦!我拿最常用的Python和JavaScript来给你演示具体实现,毕竟这俩处理字符串提取的场景特别顺手。
Python 实现
正则表达式是处理这类文本提取的绝佳工具,直接用re模块就能搞定:
import re # 你的输入字符串 input_str = "hello 4 is a number, and 5 is as well" # 匹配所有整数(如果要支持小数,后面会说调整方法) # r'\d+' 表示匹配一个或多个数字字符 number_strings = re.findall(r'\d+', input_str) # 把字符串类型的数字转成整数,存入列表 numbers = list(map(int, number_strings)) # 如果你确定只有两个数字,可以直接解包存入变量 num1, num2 = numbers print(num1) # 输出 4 print(num2) # 输出 5 # 如果不确定数字数量,直接用列表numbers存储所有提取结果就好
如果需要提取小数(比如字符串里有3.14这类),只需要把正则表达式改成r'\d+\.?\d*',然后转成float类型:
numbers = list(map(float, re.findall(r'\d+\.?\d*', input_str)))
JavaScript 实现
JS里用match()方法配合正则也能快速搞定:
const inputStr = "hello 4 is a number, and 5 is as well"; // 匹配所有数字字符串,转成Number类型 const numbers = inputStr.match(/\d+/g).map(Number); // 解包存入变量 const [num1, num2] = numbers; console.log(num1, num2); // 控制台输出 4 5
同样,要支持小数的话,正则换成/\d+\.?\d*/g就行。
内容的提问来源于stack exchange,提问作者FrankK
相关产品推荐
相关产品推荐

