-
2021-05-25 23:05:50
方法:re.findall()
使用正则表达式,直接上代码!!!
# 导入正则表达式模块 import re # 含有数字的字符串(可以看到有小数和整数) string = "#$1.23,zimu3,520.1314, 300" # 获取所有数字 print(re.findall(r"\d+",string)) # 获取所有数值(包含小数一起识别匹配) print(re.findall(r"\d+\.?\d*",string))
数字输出结果:['1', '23', '3', '520', '1314', '300']
数值输出结果:['1.23', '3', '520.1314', '300']
以上就是全部内容,希望能帮到您,如有错误,还请指正,如果觉得对您确实有帮助,卑微求个三连,谢谢!!!
更多相关内容 -
python正则表达式从字符串中提取数字的思路详解
2020-12-13 10:46:09python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始。 ## $ 匹配字符串的结尾。 ## \b 匹配一个单词的边界。 ## \d 匹配任意数字。 ## \D 匹配任意非数字字符。 ## x? 匹配一个可... -
js实现在字符串中提取数字
2020-12-03 03:05:37<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ...<head><... charset=gb2312″ /><...js实现在字符串中提取数字</title><script language=”javascript” ty -
将数字从字符串中提取
2012-10-08 15:09:45将数字从字符串中提取,源码 已运行无错,可直接使用 -
python实现将字符串中的数字提取出来然后求和
2021-01-20 01:49:12因工作原因,很久没有学习python知识了,感觉都快忘记了,前天看到一个练习题,如何将字符串中的数字提取出来,然后求和呢?下面我来解释一下如何通过python代码来实现。 题目:字符串43…3y2.f67se2.666. 将其中的... -
Mysql中实现提取字符串中的数字的自定义函数分享
2020-09-10 12:11:19主要介绍了Mysql中实现提取字符串中的数字的自定义函数分享,通常这种问题是在编程语言中实现,本文使用自定义SQL函数实现,需要的朋友可以参考下 -
python从字符串中提取数字
2021-08-31 18:18:54python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始。 ## $ 匹配字符串的结尾。 ## \b 匹配一个单词的边界。 ## \d 匹配任意数字。 ## \D 匹配任意非数字字符。 ## x? 匹配一个...python从字符串中提取数字
使用正则表达式,用法如下:
## 总结 ## ^ 匹配字符串的开始。 ## $ 匹配字符串的结尾。 ## \b 匹配一个单词的边界。 ## \d 匹配任意数字。 ## \D 匹配任意非数字字符。 ## x? 匹配一个可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符)。 ## x* 匹配0次或者多次 x 字符。 ## x+ 匹配1次或者多次 x 字符。 ## x{n,m} 匹配 x 字符,至少 n 次,至多 m 次。 ## (a|b|c) 要么匹配 a,要么匹配 b,要么匹配 c。 ## (x) 一般情况下表示一个记忆组 (remembered group)。你可以利用 re.search 函数返回对象的 groups() 函数获取它的值。 ## 正则表达式中的点号通常意味着 “匹配任意单字符”
解题思路:
- 既然是提取数字,那么数字的形式一般是:整数,小数,整数加小数;
- 所以一般是形如:
----.-----
; - 根据上述正则表达式的含义,可写出如下的表达式:"
\d+\.?\d*
"; \d+
匹配1次或者多次数字,注意这里不要写成*
,因为即便是小数,小数点之前也得有一个数字;\.?
这个是匹配小数点的,可能有,也可能没有;\d*
这个是匹配小数点之后的数字的,所以是0个或者多个;
代码如下:
import re
string="A1.45,b5,6.45,8.82"
print re.findall(r"\d+.?\d*",string)['1.45', '5', '6.45', '8.82']
匹配指定字符串开头的数字
例如下面的string:
tensorflow:Final best valid 0 loss=0.20478513836860657 norm_loss=0.767241849151384 roc=0.8262403011322021 pr=0.39401692152023315 calibration=0.9863265752792358 rate=0.0
提取 calibration=
0.9863265752792358
.# 匹配“calibration=”后面的数字 pattern = re.compile(r'(?<=calibration=)\d+\.?\d*') pattern.findall(string)
['0.9863265752792358']
匹配包含指定字符串开头的数字
pattern = re.compile(r'(?:loss=)\d+\.?\d*') pattern.findall(string)
['loss=0.20478513836860657', 'loss=0.767241849151384']
匹配时间,17:35:24
string = "WARNING:tensorflow: 20181011 15:28:39 Initialize training" pattern = re.compile(r'\d{2}:\d{2}:\d{2}') pattern.findall(string)
['15:28:39']
匹配时间,20181011 15:28:39
string = "WARNING:tensorflow: 20181011 15:28:39 Initialize training" pattern = re.compile(r'\d{4}\d{2}\d{2}\s\d{2}:\d{2}:\d{2}') pattern.findall(string)
['20181011 15:28:39']
-
VBA示例之 从字符串提取纯数字
2019-10-26 16:26:12VBA示例之 从字符串提取纯数字,供初学者参考,大牛勿进~~~~~~~ -
python环境下从字符串中提取数字
2020-01-09 23:06:05在实际编程应用中,经常需要从一堆文字中提取数值。笔者在爬虫应用中就遇到了这个问题,现找到两种解决方案,供参考!标题:python环境下从字符串中提取数字
在实际编程应用中,经常需要从一堆文字中提取数值。笔者在爬虫应用中就遇到了这个问题,现找到两种解决方案,供参考!
一些环境准备类的话就不多说了,直接上代码!
将需要的一段文字以字符串的格式赋值给一个变量(string)。
方法一:
string = "轻型车:共有198家企业4747个车型(12305个信息公开编号)15498915辆车进行了轻型车国六环保信息公开与上周汇总环比增加105个车型、386379辆车。其中,国内生产企业177家、4217个车型、14645390辆,国外生产企业21家、530个车型、853525辆;轻型汽油" # 字符串赋值 num_list = [i for i in string if str.isdigit(i)] # Python isdigit() 方法检测字符串是否只由数字组成。返回True or False. print(num_list)
打印出来的结果为
[‘1’, ‘9’, ‘8’, ‘4’, ‘7’, ‘4’, ‘7’, ‘1’, ‘2’, ‘3’, ‘0’, ‘5’, ‘1’, ‘5’, ‘4’, ‘9’, ‘8’, ‘9’, ‘1’, ‘5’, ‘1’, ‘0’, ‘5’, ‘3’, ‘8’, ‘6’, ‘3’, ‘7’, ‘9’, ‘1’, ‘7’, ‘7’, ‘4’, ‘2’, ‘1’, ‘7’, ‘1’, ‘4’, ‘6’, ‘4’, ‘5’, ‘3’, ‘9’, ‘0’, ‘2’, ‘1’, ‘5’, ‘3’, ‘0’, ‘8’, ‘5’, ‘3’, ‘5’, ‘2’, ‘5’]。我们发现,数字提取出来了,但是把原来的数值拆分成单个数字。并且仍以字符的格式保存为列表元素。那么有没有能够真实/完整的方法提取字符串中的数值呢?方法二:
string = "轻型车:共有198家企业4747个车型(12305个信息公开编号)15498915辆车进行了轻型车国六环保信息公开与上周汇总环比增加105个车型、386379辆车。其中,国内生产企业177家、4217个车型、14645390辆,国外生产企业21家、530个车型、853525辆;轻型汽油" # 字符串赋值 num_list_new = [] # 新建空列表,用以存储提取的数值 a = '' # 将空值赋值给a for i in string: # 将字符串进行遍历 if str.isdigit(i): # 判断i是否为数字,如果“是”返回True,“不是”返回False a += i # 如果i是数字格式,将i以字符串格式加到a上 else: a += " " # 如果i不是数字格式,将“ ”(空格)加到a上 # 遍历后,a的值为: # 198 4747 12305 15498915 105 386379 #177 4217 14645390 21 530 853525 #数字与数字之间存在许多空格,所以需要对字符串a按''进行分割。 num_list = a.split(" ") # 按''进行分割,此时a由字符串格式编程列表 print("num_list is \n", num_list) # 分割后,a的值为:['', '', '', '', '', '', '198', '', '', '4747', '', '', '', '12305', '', '', '', '', '', '', '', '15498915', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '105', '', '', '', '386379', '', '', '', '', '', '', '', '', '', '', '', '177', '', '4217', '', '', '', '14645390', '', '', '', '', '', '', '', '21', '', '530', '', '', '', '853525', '', '', '', '', '', '']。应该去掉空格,并将字符串格式的数字转化为int格式(主要是字符串中的数字皆为整数,如果有小数,应转化为float格式)。 for i in num_list: # 对列表a,进行遍历 try: # try 结构体,防止出错后直接退出程序 if int(i) > 0: num_list_new.append(int(i)) # 如果列表a的元素为数字,则赋值给num_list_new else: pass # 如果不是数字,pass except: pass print("num_list is \n", num_list_new) #打印出的结果[198, 4747, 12305, 15498915, 105, 386379, 177, 4217, 14645390, 21, 530, 853525]。是我们需要的数字。 print("len(num_list_new)", len(num_list_new)) # 作为验证,可以数一下列表元素个数 #打印结果为:12
方法三:
涉及字段提取,怎么可以忘记正则表达式!但需要引入re(正则表达式)模块。
import re string = "轻型车:共有198家企业4747个车型(12305个信息公开编号)15498915辆车进行了轻型车国六环保信息公开,与上周汇总环比增加105个车型、386379辆车。其中,国内生产企业177家、4217个车型、14645390辆,国外生产企业21家、530个车型、853525辆;轻型汽油" a = [] a = re.findall("\d+\.?\d*", string) # 正则表达式 print(a) # 打印结果:['198', '4747', '12305', '15498915', '105', '386379', '177', '4217', '14645390', '21', '530', '853525'] #for i in range(len(a)): # 列表a元素转化为int格式 # a[i] = int(a[i]) a = list(map(int,a)) #可以替代上面两行代码 print(a) # 打印结果[198, 4747, 12305, 15498915, 105, 386379, 177, 4217, 14645390, 21, 530, 853525]
程序简单,ok
-
VB6.0从一串字符中只提取数字
2017-07-24 14:24:44包含整个工程,可直接复制使用 -
C语言中从字符串中提取数字
2020-03-02 17:32:41小记: ...题目:输入字符串,把其中的整数提取出来,放在一个新的数组中,统计有多少个整数,并输出这些数。 程序如下: #include <stdio.h> #include <string.h> int main() { c...题目要求:
输入字符串,把其中的整数提取出来,放在一个新的数组中,统计有多少个整数,并输出这些数。
小记:
本人最近在学习谭浩强经典C语言教材,此题目为谭浩强《C程序设计》第8章,16题。谭老的解写得比较繁琐,故我自己写了一个笔记做回顾。
程序如下:#include <stdio.h> #include <string.h> int main() { char str[80] = "00fs2jjksf0jsf 232.sfdjk,"; int a[20], i, m; int find_num(int *a, char *str); m = find_num(a, str); for(i = 0; i < m; i++) { printf("%d ", a[i]); } printf("一共有%d个数\n", m); return 0; } //把str中找到的数字放入a中 int find_num(int *a, char *str) { int i, k, sum = 0, flag = 0,m = 0; //i记录循环次数 //sum存放连在一起所有数的值 //k记录提取的单个数的值 //flag记录当前是否为数字 //m记录a[]的下标,存放数字到a数组中 for(i = 0; i <= (int)strlen(str); i++) { //当前位为数字,则放入k中 if (str[i] >='0' && str[i] <= '9') { flag = 1; k = str[i] - '0'; } else { //flag为1说明,前一位是数字,而现在已不是数字 //故把计算的sum放入数组中,一组连在一起的数字判断完成 if (flag == 1) { a[m++] = sum; } //复位 flag = 0; sum = 0; } //若为数字,则计算连在一起的数字的值 if (flag == 1) { sum = sum * 10; sum += k; } } //返回个数 return m; }
-
C语言:提取字符串中的数字
2021-06-21 17:33:25做作业的时候有一道题要求统计字符串中的数字 如“12s133 358-76vh9”,提取出每段数字并将其化为整型: 12、133、358、76、9 逻辑思想:遍历数组,用检测是否处于数字字符或数字字符与其他字符的交界处的方法... -
mysql中取字符串中的数字的语句
2020-09-11 02:15:31在很多时间我们需要把字符串的数字给取出来,通常大家会用php,asp等这类来操作,本文章介绍了在sql中取字符中的数字办法,有需要的朋友可以参考一下 -
如何在Python中从字符串中提取数字?
2020-11-28 18:54:48我将提取字符串中包含的所有数字。 哪个更适合于目的,正则表达式或isdigit()方法?例:line = "hello 12 hi 89"结果:[12, 89]#1楼@jmnas,我很喜欢您的回答,但没有找到浮点数。 我正在处理一个脚本,以分析要送入... -
从字符串中提取数字
2020-07-13 10:45:41I want to extract the numbers from a string that contains numbers and letters like: 我想从包含数字和字母的字符串中 -
C语言实例:提取字符串中全部数字
2020-07-03 09:11:24如果我们输入一个字符串,其中含有字母和数字,如果只想要其中的数字,如何处理呢? 实现方法:比如说,我们想要将“d2d2d3”中的数字“223”提取出来,那么需要逐个字符判断是否为为数字,条件成立则放在新的字符... -
C语言之从字符串中获取数字
2019-06-11 10:53:09以前就有的一个想法,如果有一串字符串,里面又有数字,又有字母,我们应该如何获取到里面的数字呢?废话不多说,直接看源码: #include"stdio.h" #include"string.h" int main() { char test[100]; //用于接收... -
提取字符串中的数字C/C++(指针)
2021-05-02 14:44:17本关任务:在一串隐藏着一个或多个数值的字符中,选出字符串中的所有数字字符,并将选出的数字字符重新组成新字符串。如果在第一个数字字符之前有负号,则保留该负号,有多个负号时只保留一个。 例如:输入的字符串... -
C语言从字符串中提取数字
2018-09-18 10:16:11如果是格式已知的字符串, 如 "profile3", 从中提取数字3, 则可以使用函数sscanf, 如下: char profile[20] = "profile3"; int err, profile_id; err = sscanf(profile, "profile%d", &profile_id); 参考: ... -
C++ 提取字符串中的所有数字
2018-10-25 11:31:01int main() { while (true) { cout 请输入字符串" ; string str; cin >> str; list nums = GetStringByNumArr(str); for (list::iterator it = nums.begin(); it != nums.end(); it++) { cout *it ; } } system(... -
从含有数字的文本字符串中提取出数字
2021-05-20 06:06:03图1可以使用数组公式:=1*MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$20),1)),0),COUNT(1*MID(A1,...图2公式中,使用MID(A1,ROW($1:$20),1)分解单元格A1中的文本,使用MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$20),... -
java 从字符串中提取数字
2017-09-29 23:52:13从键盘随意输入一串字符,从中提取数字 import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public class getNum{ public static void main(String[] args){ Scanner sc=... -
Python:从字符串中提取数字
2020-11-22 16:32:52如果您只想提取正整数,请尝试以下操作:>>> str = "h3110 23 cat 444.4 rabbit 11 2 dog">>> [int(s) for s in str.split() if s.isdigit()][23, 11, 2]我认为这比正则表达式的例子好三个原因。首先,你不需要另一... -
从字符串中提取数字、字母
2020-05-28 17:44:232 提取数字:regEx=“[0-9]"; 3 提取英文:regEx=“[a-z||A-Z]"; 4 提取英文和数字:regEx=“[a-z||A-Z||0-9]"; 运用正则表达式 已知字符串:String str = K960+055=JGK1048+949 public String getNum(String str) ... -
JavaScript如何从字符串中提取数字?
2022-01-10 17:01:43JavaScript如何从字符串中提取数字? -
从字符串中提取连续的字符数字转换为整数
2017-02-21 17:31:26本文档介绍了几种从字符串中提取连续的字符数字转换为整数的方法,附有源代码供参考,适合于那些想要编码实现字符串中提取连续的字符数字转换为整数的同学 -
提取一个字符串中数字字符的n种方法
2021-03-27 21:42:41方法一 s = input() list =[] for i in s: if i in "0123456789": list.append(i) print(int("".join(list))) 方法二 s = input() a = [] for n in s : if n.isdigit() : a.append(n) print(int("".join(a))) ...