精华内容
下载资源
问答
  • 一串字符中提取其中的数字
    万次阅读 多人点赞
    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']


    以上就是全部内容,希望能帮到您,如有错误,还请指正,如果觉得对您确实有帮助,卑微求个三连,谢谢!!! 

    更多相关内容
  • 主要介绍了Mysql实现提取字符串中数字的自定义函数分享,通常这种问题是在编程语言实现,本文使用自定义SQL函数实现,需要的朋友可以参考下
  • 因工作原因,很久没有学习python知识了,感觉都快忘记了,前天看到个练习题,如何将字符串中数字提取出来,然后求和呢?下面我来解释一下如何通过python代码来实现。 题目:字符串43…3y2.f67se2.666. 将其中的...
  • python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始。 ## $ 匹配字符串的结尾。 ## \b 匹配个单词的边界。 ## \d 匹配任意数字。 ## \D 匹配任意非数字字符。 ## x? 匹配个可...
  • 一串字符中数字函数.rar,从一串字符中数字函数,工程1.vbw,工程1.vbp,Form1.frm
  • 图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),...

    221228625_1_20210501083708426

    图1

    可以使用数组公式:

    =1*MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$20),1)),0),COUNT(1*MID(A1,ROW($1:$20),1)))

    如下图2所示,下拉至单元格B4。

    221228625_2_20210501083708458

    图2

    公式中,使用MID(A1,ROW($1:$20),1)分解单元格A1中的文本,使用MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$20),1)),0)找到文本中数字的起始位置,使用COUNT(1*MID(A1,ROW($1:$20),1))来计算数字的个数。

    然后,将数字的起始位置及个数作为MID函数的参数,提取出数字文本。最后,乘以1将文本转换成数字值。

    编写公式的过程请参考下面的视频:

    此外,可以使用下面的公式:

    =LOOKUP(9.99999999E+307,1*LEFT(MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),999),ROW($1:$999)))

    实现相同的目的。明解C语言 中级篇

    作者:[日]柴田望洋

    当当

    上面的示例及公式解决了文本中数字是连续的情形。如果文本中的数字不连续呢?也就是说,文本中有好几处出现了数字呢,如下图3所示,使用上面的公式得到#VALUE!错误,我们如何把这些数字提取出来?

    221228625_3_20210501083708520

    图3

    先给出公式:

    =SUM(MID(0&A1,LARGE(ISNUMBER(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)/1)*ROW(INDIRECT("1:"&LEN(A1))),ROW(INDIRECT("1:"& LEN(A1))))+1,1)*10^(ROW(INDIRECT("1:"& LEN(A1)))-1))

    仍然是数组公式,结果如下图4所示。

    221228625_4_20210501083708740

    图4

    这个公式很复杂,有点不好理解,下面我们来详细解释。

    公式中的:

    ROW(INDIRECT("1:"&LEN(A1)))

    等价于:

    ROW(INDIRECT(“1:”&14))

    进一步转换为:

    ROW(INDIRECT(“1:14”))

    使用在数组公式中时会转换为数组:

    {1;2;3;4;5;6;7;8;9;10;11;12;13;14}

    公式中的:

    MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)

    等价于:

    MID(“完美2018Excel923”,{1;2;3;4;5;6;7;8;9;10;11;12;13;14},1)

    得到数组:

    {"完";"美";"2";"0";"1";"8";"E";"x";"c";"e";"l";"9";"2";"3"}

    公式中的:

    ISNUMBER(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)/1)

    等价于:

    ISNUMBER({"完";"美";"2";"0";"1";"8";"E";"x";"c";"e";"l";"9";"2";"3"}/1)

    由于数字文本除以数字将转换为数字,其他文本将返回错误,因此上述公式转换为:

    ISNUMBER({#VALUE!;#VALUE!;2;0;1;8;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;9;2;3})

    得到数组:

    {FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE}

    公式中的:

    LARGE(ISNUMBER(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)/1)*ROW(INDIRECT("1:"&LEN(A1))),ROW(INDIRECT("1:"& LEN(A1))))

    等价于:

    LARGE({FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE}*{1;2;3;4;5;6;7;8;9;10;11;12;13;14},{1;2;3;4;5;6;7;8;9;10;11;12;13;14})

    转换为:

    LARGE({0;0;3;4;5;6;0;0;0;0;0;12;13;14},{1;2;3;4;5;6;7;8;9;10;11;12;13;14})

    得到数组:

    {14;13;12;6;5;4;3;0;0;0;0;0;0;0}

    下面,来看公式中的:

    MID(0&A1,LARGE(ISNUMBER(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)/1)*ROW(INDIRECT("1:"&LEN(A1))),ROW(INDIRECT("1:"& LEN(A1))))+1,1)

    转换为:

    MID(“0完美2018Excel923”,{15;14;13;7;6;5;4;1;1;1;1;1;1;1},1)

    等价于:

    {"3";"2";"9";"8";"1";"0";"2";"0";"0";"0";"0";"0";"0";"0"}

    最后,到了公式的关键部分。

    我们知道,x^y表示x的y次方,这意味着:

    MID(0&A1,LARGE(ISNUMBER(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)/1)*ROW(INDIRECT("1:"&LEN(A1))),ROW(INDIRECT("1:"& LEN(A1))))+1,1)*10^(ROW(INDIRECT("1:"& LEN(A1)))-1)

    等价于:

    {"3";"2";"9";"8";"1";"0";"2";"0";"0";"0";"0";"0";"0";"0"}*10^{0;1;2;3;4;5;6;7;8;9;10;11;12;13}

    进一步转换为:

    {"3";"2";"9";"8";"1";"0";"2";"0";"0";"0";"0";"0";"0";"0"}*{1;10;100;1000;10000;100000;1000000;10000000;100000000;1000000000;10000000000;100000000000;1000000000000;10000000000000}

    得到数组:

    {3;20;900;8000;10000;0;2000000;0;0;0;0;0;0;0}

    将上述数组传递给SUM函数求和,得到结果:

    2018923

    也就是文本中的数字连接后的数字。

    为什么要使用0&A1呢?这是为了保证在MID函数提取值时,避免由于参数是0而导致产生错误值。

    下面,再给出两个公式。

    公式2:

    =SUM(IFERROR(MID(A1,LARGE(ISNUMBER(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)^1)*ROW(INDIRECT("1:"&LEN(A1))),ROW(INDIRECT("1:"&LEN(A1)))),1),0)*(1&REPT("0",(ROW(INDIRECT("1:"&LEN(A1)))-1))))

    公式3:

    =SUMPRODUCT(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1,ROW($1:$50),1))*ROW($1:$50),0),ROW($1:$50))+1,1)*10^ROW($1:$50)/10)

    都可以得到相同的结果。

    展开全文
  • java如何提取字符串中数字

    千次阅读 2021-02-12 19:20:40
    // 判断是否是数字 if (c >= '0'&& c ) { // 判断和字符串中数字是否重复 for (int j = 1; j (); j++) { if (c == strbuf.charAt(j)) { // 如果重复,标志位数值为false,并跳出循环;否则标志位设置为true. flag = ...

    展开全部

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.util.Arrays;

    public class NumberSplit {

    public StringBuffer getString(String str) {

    StringBuffer strbuf = new StringBuffer("t");

    boolean flag = true;

    for (int i = 0; i < str.length(); i++) {

    char c = str.charAt(i);

    // 判断是否是数字

    if (c >= '0'&& c <= '9') {

    // 判断和字符串中的数字是否重复

    for (int j = 1; j < strbuf.length(); j++) {

    if (c == strbuf.charAt(j)) {

    // 如果重复,标志位数值为false,并跳出循环;否则标志位设置为true.

    flag = false;

    break;

    } else

    flag = true;

    }

    // 只有在32313133353236313431303231363533e59b9ee7ad9431333365643536即是数字又不重复的情况下才将改字符拼接到字符串上.

    if (flag) {

    strbuf.append(c);

    }

    }

    }

    return strbuf;

    }

    public static void main(String args[]) throws Exception {

    System.out.println("请输入一段字符串,并以回车结束");

    BufferedReader buf = new BufferedReader(

    new InputStreamReader(System.in));

    String str = buf.readLine();

    StringBuffer strbuf = new NumberSplit().getString(str);

    // 将返回的StringBuffer转换为字符数组

    char c[] = strbuf.deleteCharAt(0).toString().toCharArray();

    // 对字符数组排序

    Arrays.sort(c);

    // 输出字符数组

    for (int i = 0; i < strbuf.length(); i++) {

    System.out.print(c[i]);

    }

    }

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.util.Arrays;

    public class NumberSplit {

    public StringBuffer getString(String str) {

    StringBuffer strbuf = new StringBuffer("t");

    boolean flag = true;

    for (int i = 0; i < str.length(); i++) {

    char c = str.charAt(i);

    // 判断是否是数字

    if (c >= '0'&& c <= '9') {

    // 判断和字符串中的数字是否重复

    for (int j = 1; j < strbuf.length(); j++) {

    if (c == strbuf.charAt(j)) {

    // 如果重复,标志位数值为false,并跳出循环;否则标志位设置为true.

    flag = false;

    break;

    } else

    flag = true;

    }

    // 只有在即是数字又不重复的情况下才将改字符拼接到字符串上.

    if (flag) {

    strbuf.append(c);

    }

    }

    }

    return strbuf;

    }

    public static void main(String args[]) throws Exception {

    System.out.println("请输入一段字符串,并以回车结束");

    BufferedReader buf = new BufferedReader(

    new InputStreamReader(System.in));

    String str = buf.readLine();

    StringBuffer strbuf = new NumberSplit().getString(str);

    // 将返回的StringBuffer转换为字符数组

    char c[] = strbuf.deleteCharAt(0).toString().toCharArray();

    // 对字符数组排序

    Arrays.sort(c);

    // 输出字符数组

    for (int i = 0; i < strbuf.length(); i++) {

    System.out.print(c[i]);

    }

    }

    展开全文
  • C语言从字符串中提取数字

    千次阅读 2020-11-28 14:23:02
    输入 A123.1c34.df.1 456.78cpc876.9er 849.1 输出 123.1 1 456.78 876.9 849.1 直接代码 #include "stdio.h" int CharToInt(char a){ switch(a){ case '0':return 0; ... case '5':ret.
    
    输入
    A123.1c34.df.1 456.78cpc876.9er 849.1
    
    输出 
    123.1
    1
    456.78
    876.9
    849.1
    
    
    

    直接代码

    
    #include "stdio.h"
    int CharToInt(char a){
    	return a-'0';
    }
    int PointLen(double f)
    {
        int i = 0,j=1;
        while (i++, f != (int)f) f *= 10;
    	//return i-1;
    	for(i;i>0;i--)
    		j=j*10;
        return j;
    }
    
    int main(void){
    	char aa[100]="A123.1c34.df.1 456.78cpc876.9er 849.1";
    	char *a=aa;
    	int i,num=0,flag_num=0,flag_point=0;
    	double b[20];
    	for (i=0;i<20;i++)
    		b[i]=0;
    
    	while(*a!='\0'){
    		if(*a>='0' && *a<='9'){
    			flag_num=1;
    			if(flag_point==1)
    				b[num] = b[num] + (double) CharToInt(*a)/(PointLen(b[num]));
    			else
    				b[num] = b[num]*10 + CharToInt(*a);
    		}else{
    			if(*a=='.'){
    				if(flag_num==1){
    					flag_point=1;
    				}
    			}else{
    				if(flag_num==1)
    					num++;
    				flag_num=0;
    				flag_point=0;
    			}
    		}
    		a++;
    	}
    	for(i=0;i<=num;i++)
    		printf("第%d个数为:%.4f\n",i,b[i]);	
    	return 0;
    }
    
    
    
    
    
    展开全文
  • 我将提取字符串中包含的所有数字。 哪个更适合于目的,正则表达式或isdigit()方法?例:line = "hello 12 hi 89"结果:[12, 89]#1楼@jmnas,我很喜欢您的回答,但没有找到浮点数。 我正在处理个脚本,以分析要送入...
  • C语言:提取字符串中数字

    千次阅读 2021-06-21 17:33:25
    做作业的时候有一道题要求统计字符串中数字 如“12s133 358-76vh9”,提取出每段数字并将其化为整型: 12、133、358、76、9 逻辑思想:遍历数组,用检测是否处于数字字符数字字符与其他字符的交界处的方法...
  • MySQL字符串中提取数字

    千次阅读 2020-11-26 11:24:26
    MySQL字符串中提取id数字,例:{“id”:“11111”,“type”:12,“attr”:1} 思路: 1、先将字符串中 “id”:“11111” 提取出来 2、提取11111? 3、这里可以反向思考保留11111,将其他字符去掉 用到两个mysql 函数:...
  • python从字符串中提取数字

    千次阅读 2021-08-31 18:18:54
    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始。 ## $ 匹配字符串的结尾。 ## \b 匹配个单词的边界。 ## \d 匹配任意数字。 ## \D 匹配任意非数字字符。 ## x? 匹配个...
  • php提取字符串中数字教程

    千次阅读 2021-05-05 05:10:54
    字符串是我们程序员必定接触法人,有时候工作需要在一串字符串中将所有的数字提取出来,其实研究一下这种方法还挺多,对如何使用PHP将字符串数字提取出来的功能我们做了一个小总结,和大家一起分享一下,总结...
  • 方法 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))) ...
  • C语言字符串中提取数字

    千次阅读 2020-03-02 17:32:41
    小记: ...题目:输入字符串,把其中的整数提取出来,放在个新的数组,统计有多少个整数,并输出这些数。 程序如下: #include <stdio.h> #include <string.h> int main() { c...
  • 字符串中提取数字

    千次阅读 2020-07-13 10:45:41
    I want to extract the numbers from a string that contains numbers and letters like: 我想从包含数字和字母的字符串中
  • 逛到个有意思的博客在里面看到篇关于ValueError: invalid literal for int() with base 10错误的解析,针对这个错误,博主已经给出解决办法,使用的是re.sub 方法totalCount = '100abc'totalCount = re.sub("\D...
  • C语言实例:提取字符串中全部数字

    万次阅读 2020-07-03 09:11:24
    如果我们输入字符串其中含有字母和数字,如果只想要其中数字,如何处理呢? 实现方法:比如说,我们想要将“d2d2d3”数字“223”提取出来,那么需要逐个字符判断是否为为数字,条件成立则放在新的字符...
  • Java提取字符串中数字

    千次阅读 2021-02-26 16:49:16
    在Java,如果输入一串由其他非数字字符隔开的数字,但却想要将其中数字提取出来,网上已经给出多种解决方案,以下对这些方法及其对应的情况进行简单的总结,并提出自己的解决方案:1.多个由不确定字符隔开的单个...
  • 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:23
    2 提取数字: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) ...
  • //目的:用户输入一串字符串,提取字符串的数组到另一个字符串 #include<stdio.h>//标准的输入和输出流 #include<stdlib.h>//system(“pause”)要用 void get(char* str1, char* str2);//具体实现的...
  • python如何从字符串中提取数字

    千次阅读 2020-11-22 19:37:21
    2、首先,在B2输4102入公式:=FIND("#",A2)返回#在字符串中1653的位置,#在A2单元格文本是第6个字符。3、知识点说明:FIND()函数查找第参数在第二参数的位置。如下图,查找“B”在“ABCD”是第几个字符。...
  • 个函数,它的原形是int continumax(char *outputstr,char *intputstr) //功能: //在字符串中找出连续最长的数字串,并把这个的长度返回, //并把这个最长数字串付给其中一个函数参数outputstr所指内存。...
  • 字符串"100+200-50*2/5"中提取出来数字和运算符 #include <stdio.h> #include <stdlib.h> #include <string.h> int analysis_data(const char *str, int *value, int *value_count, char *...
  • TRUE) #(\\d)表示任意数字,将data的week列从“week”后面找到任意数字,convert = TRUE表示转化为整数类型 week value 1 1 5 2 2 6 3 3 7 4 4 8 下面是验证上面参数convert的作用 a (data,week,"week","(\\d)",...
  • java从字符串中提取数字

    千次阅读 2021-03-11 14:27:12
    随便给你个含有数字字符串,比如:String s="eert343dfg56756dtry66fggg89dfgf";那我们如何把其中数字提取出来呢?大致有以下几种方法,正则表达式,集合类,还有就是String类提供的方法。1String类提供的方法...
  • 如何将字符串中数字提取出来

    千次阅读 2022-03-27 15:37:53
    爬取某房价信息的网站信息,在获取平均价格的时候,单价和单位是整个字符串在一起的,如何仅将其中数字字符串提取出来? 方法:re.findall()函数,返回列表 注意其返回的是个列表:把其中个序列...
  • Python3中字符串中数字提取方法

    千次阅读 2020-11-21 02:58:36
    原博文2018-10-28 17:07 −## Python3中字符串中数字提取方法 - **re.sub(pattern, repl, string, count=0, flags=0)** ```1 totalCount = '100abc' 2 totalCount = re.sub("\D", "", totalCount) ...相关推荐2019...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 178,143
精华内容 71,257
热门标签
关键字:

一串字符中提取其中的数字