精华内容
下载资源
问答
  • 2020-11-28 18:54:48

    我将提取字符串中包含的所有数字。 哪个更适合于目的,正则表达式或isdigit()方法?

    例:

    line = "hello 12 hi 89"

    结果:

    [12, 89]

    #1楼

    @jmnas,我很喜欢您的回答,但没有找到浮点数。 我正在处理一个脚本,以分析要送入CNC铣床的代码,并且需要查找可以是整数或浮点数的X和Y尺寸,因此我将代码修改为以下内容。 查找具有正值和负值的int,float。 仍然找不到十六进制格式的值,但是您可以在num_char元组中添加“ x”和“ A”至“ F”,我认为它将解析“ 0x23AC”之类的内容。

    s = 'hello X42 I\'m a Y-32.35 string Z30'

    xy = ("X", "Y")

    num_char = (".", "+", "-")

    l = []

    tokens = s.split()

    for token in tokens:

    if token.startswith(xy):

    num = ""

    for char in token:

    # print(char)

    if char.isdigit() or (char in num_char):

    num = num + char

    try:

    l.append(float(num))

    except ValueError:

    pass

    print(l)

    #2楼

    这有点迟了,但是您也可以扩展regex表达式以说明科学符号。

    import re

    # Format is [(, ), ...]

    ss = [("apple-12.34 ba33na fanc-14.23e-2yapple+45e5+67.56E+3",

    ['-12.34', '33', '-14.23e-2', '+45e5', '+67.56E+3']),

    ('hello X42 I\'m a Y-32.35 string Z30',

    ['42', '-32.35', '30']),

    ('he33llo 42 I\'m a 32 string -30',

    ['33', '42', '32', '-30']),

    ('h3110 23 cat 444.4 rabbit 11 2 dog',

    ['3110', '23', '444.4', '11', '2']),

    ('hello 12 hi 89',

    ['12', '89']),

    ('4',

    ['4']),

    ('I like 74,600 commas not,500',

    ['74,600', '500']),

    ('I like bad math 1+2=.001',

    ['1', '+2', '.001'])]

    for s, r in ss:

    rr = re.findall("[-+]?[.]?[\d]+(?:,\d\d\d)*[\.]?\d*(?:[eE][-+]?\d+)?", s)

    if rr == r:

    print('GOOD')

    else:

    print('WRONG', rr, 'should be', r)

    一切都好!

    #3楼

    我发现的最佳选择如下。 它将提取一个数字并可以消除任何类型的字符。

    def extract_nbr(input_str):

    if input_str is None or input_str == '':

    return 0

    out_number = ''

    for ele in input_str:

    if ele.isdigit():

    out_number += ele

    return float(out_number)

    #4楼

    此答案还包含数字在字符串中为浮点的情况

    def get_first_nbr_from_str(input_str):

    '''

    :param input_str: strings that contains digit and words

    :return: the number extracted from the input_str

    demo:

    'ab324.23.123xyz': 324.23

    '.5abc44': 0.5

    '''

    if not input_str and not isinstance(input_str, str):

    return 0

    out_number = ''

    for ele in input_str:

    if (ele == '.' and '.' not in out_number) or ele.isdigit():

    out_number += ele

    elif out_number:

    break

    return float(out_number)

    #5楼

    如果您知道字符串中只有一个数字,即“ hello 12 hi”,则可以尝试过滤。

    例如:

    In [1]: int(''.join(filter(str.isdigit, '200 grams')))

    Out[1]: 200

    In [2]: int(''.join(filter(str.isdigit, 'Counters: 55')))

    Out[2]: 55

    In [3]: int(''.join(filter(str.isdigit, 'more than 23 times')))

    Out[3]: 23

    但是要小心! :

    In [4]: int(''.join(filter(str.isdigit, '200 grams 5')))

    Out[4]: 2005

    更多相关内容
  • <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ...<head><... charset=gb2312″ /><...js实现在字符提取数字</title><script language=”javascript” ty
  • 包含整个工程,可直接复制使用
  • 满意答案Letheann2013.07.19采纳率:41%等级:13已帮助:10480人#include #include "windows.h"#define MAX 1024main(){ char *str1,*str2,*p; int i=0,k=0; str1=(char *)malloc(1024*sizeof(char));...

    满意答案

    dcebd7a0de6265b6ccae5ead692f1eab.png

    Letheann

    2013.07.19

    dcebd7a0de6265b6ccae5ead692f1eab.png

    采纳率:41%    等级:13

    已帮助:10480人

    #include #include "windows.h"#define MAX 1024main(){    char *str1,*str2,*p;    int i=0,k=0;    str1=(char *)malloc(1024*sizeof(char));    str2=(char *)malloc(1024*sizeof(char));    fflush(stdin);    gets(str1);    fflush(stdin);    gets(str2);    p=str1;    while(*p!='\0')    {        if(isdigit(*p)) i=i*10+*p-'0';        p++;    }    p=str2;    while(*p!='\0')    {        if(isdigit(*p)) k=k*10+*p-'0';        p++;    }    printf("%d\n",i+k);    free(str1);    free(str2);}

    00分享举报

    展开全文
  • 包含字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号,字符是计算机或电子通信中字母、数字、符号的统称,是数据结构中数据存取中最小的数据单位,通常有8个二进制单位(个字节)来表示个字符,...

    注意:字符就是指类字型符号或单位,包含字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号,字符是计算机或电子通信中字母、数字、符号的统称,是数据结构中数据存取中最小的数据单位,通常有8个二进制单位(一个字节)来表示一个字符,字符是计算机中最常用的二进制编码形式,是计算机中最常用的信息形式(引自百度百科)。

    使用MID函数公式,MID(字符串,开始位置,字符个数)选取单元格内从开始位置(字符的序号)算起的字符个数的字符段来进行数据输出。

    使用 & 字符来进行字符段拼接;(连接文本字符串非单元或非函数的时候需要使用 “” 字符来进行字符的包括。)

    使用 ±字符来进行字符数值加减;

    使用( )字符来进行运算次序规定,公式段优先级选取;

    例如下图,公式为使用MID函数公式选取E1单元格第1个字符(值为2)开始的6个字符(为 2.1.3. ),使用括号()括起来使用&拼接的使用MID函数公式选取E1单元格第7个字符(值为2)开始的3个字符(为 250)然后用+来加数值1得到(251),使用&拼接使用MID函数公式选取E1单元格第10个字符(值为 . )开始的2个字符(为 .3 )。得到2.1.3.251.3。
    ![在
    得到2.1.3.251.3。在这里插入图片描述
    下拉运用公式获取F列其他值;
    在这里插入图片描述
    复制F列到G列,选取数值,得到F列这部分纯数值。
    在这里插入图片描述
    得到纯数值格式数值。
    在这里插入图片描述

    展开全文
  • 因工作原因,很久没有学习python知识了,感觉都快忘记了,前天看到个练习题,如何将字符中的数字提取出来,然后求和呢?下面我来解释一下如何通过python代码来实现。题目:字符43...3y2.f67se2.666. 将其中的...

    因工作原因,很久没有学习python知识了,感觉都快忘记了,前天看到一个练习题,如何将字符串中的数字提取出来,然后求和呢?下面我来解释一下如何通过python代码来实现。

    题目:字符串43...3y2.f67se2.666. 将其中的所有数字提取出来然后求和

    思考:

    1、字符串中包含了字母和数字和小数点,怎么取出来比较呢?

    2、小数点连续有很多个的时候怎么处理?

    3、最后取出来的数该怎么求和?

    4、最后一个是小数点该怎么办?

    解题思路:

    1、首先通过循环遍历去将字符串中的数字取出来

    2、去判断取出来的数是数字还是字母还是小数点

    3、多个小数点的数要去掉

    4.取出来结果是 43 3 2 67 2.666

    源代码实现过程:

    str= "43...3y2.f67se2.666. "

    sum = 0

    number = ""

    is_num ="0123456789" #定义是否是数字

    is_has_float = False #定义是否是小数点

    isstart = False #定义是否是数字开始的标记变量

    for a in str: #将数字循环遍历

    if a in is_num: #判断取出来的数字是否是数字

    if isstart==True:

    number = number+a

    else:

    number = number+a

    isstart=True

    continue

    if a=='.': #判断取出来的数字是否是小数点

    if isstart==True: #判断前一个是否是数字

    if is_has_float == True:

    pass

    else:

    is_has_float = True

    number = number+a

    continue

    if isstart == True: #当一个数字遍历完了,就要求和,现在取出的数字格式的字符串,不是整形,所以6+7 = 67

    print(number.strip('.')) #strip去掉最后一个小数点

    sum = sum+float(number.strip('.'))

    #前一个数字取完了之后,初始化,

    number = ""

    isstart = False

    is_has_float = False

    if isstart == True: #判断结尾是否是数字

    print(number.strip("."))

    sum = sum+float(number.strip("."))

    print(sum)

    大致的流程是这样的:

    先定义好空的对象,用于存放取出来的数字,和是否是数字和小数点,然后在通过取出来的数字进入循环里面判断属于什么,比如第一个,取出来是4,第9行,判断4是不是属于定义的数字里面的值,属于就进去第一个if里面,在去判断number这个对象里面的值首个字母是不是数字,因为刚开始是空的,所以程序会到13行,最后将4添加进number里面,第二次遍历,取3,3是数字,进9行,然后第10行是判断number里面的值是不是数字,是,就添加进去,然后number就变成43了,这里说下字符串相加是拼接在一起的不是整形,第三个遍历添加的取的是小数点,进去小数点的判断里面,也就是16行,然后也是判断number值第一个是不是数字,是就进入18行,18行的判断是判断number里面有没有小数点,有就结束,没有就添加进去。

    所以现在number变成43.了,然后继续遍历第4个,也是小数点,这时候就会进去18行,已经存在小数点了,pass结束,小数点后面肯定是接数字不是其他字符的,就是1.2啊这些 不会是1..2这样,所以程序会进24行,判断第一个是不是数字,然后去掉这个数字最后一个小数点,然后添加进去,重置初始化。

    等于是刚才number是43..了,但这是不对的,所以去掉最后一个小数点就是43.了。但求和的时候用了浮点型转换,所以就会默认补0,变成43.0,后面因为取出的第4位是小数点,43..组不成一个正常的数字了,除非第四个继续是数字就可以继续添加,说明之前一个数已经取完了,所以要重置初始化,然后依次继续取后面的数字。最后求和。

    当取出来是字母的时候,不属于判断里面的任意一个,这个时候会被直接过滤掉。

    其实不难,但要心细,考虑到多种场景

    补充知识:python实现计算字符串中的整数的总和

    题目描述:随便输入一串字符串

    例如:

    输入:

    ‘ad23dsf34#'

    目的:计算 23+34 的和

    输出:

    57

    '''

    @destination 计算字符串中整数的和

    method:将字符串中的字母同意替换成一个字符然后分隔就可以得到整数

    这里面用到的isdigit函数是判断字符串是否是数字

    '''

    def cacul(a):

    sum=0#用来存放总和

    c=[]

    for i in a:

    if i.isdigit()==False:

    c.append(i)

    for i in c:

    a=a.replace(i,',')

    a=a.split(',')

    print(a)

    for i in a:

    if i.isdigit()==True:

    sum=sum+int(i)

    return sum

    a='1a2b3c4d5f6g'

    print(cacul(a))

    运行结果为:

    b1f2b2c13da532859a42698a7fa24a1e.png

    以上这篇python实现将字符串中的数字提取出来然后求和就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持python博客。

    展开全文
  • MySQL字符提取数字

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

    千次阅读 2022-01-10 17:01:43
    JavaScript如何从字符提取数字
  • python如何提取字符中的数字

    千次阅读 2021-01-07 13:58:48
    ## ^ 匹配字符的开始。 ## $ 匹配字符的结尾。 ## \b 匹配个单词的边界。 ## \d 匹配任意数字。 ## \D 匹配任意非数字字符。 ## x? 匹配个可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符)。 ## ...
  • python提取字符数字

    千次阅读 2022-04-22 12:16:16
    笔记:python里提取字符...只能提取个连续的数字 # 取出字符里的数字 num_filter = filter(str.isdigit, img_name) num_list = list(num_filter) num_str = "".join(num_list) num_int = int(num_str) 例如:
  • excelperfect上篇文章讲解了提取位于字符开头的数字的公式技术,本文研究从字符开头提取数字的技术:1. 这些数字是连续的2. 这些连续的数字位于字符的末尾3. 想要的结果是将这些连续的数字返回到单个单元格与...
  • Java提取字符中的数字

    千次阅读 2021-02-26 16:49:16
    在Java中,如果输入一串由其他非数字字符隔开的数字,但却想要将其中的数字提取出来,网上已经给出多种解决方案,以下对这些方法及其对应的情况进行简单的总结,并提出自己的解决方案:1.多个由不确定字符隔开的单个...
  • 代码如下: create ...剩余的为数字部分 END RETURN CONVERT(bigint,@No) END 此函数可以返回某字符中的数字部分 PATINDEX函数 返回所查内容在字符中第次出现的索引 STUFF函数 删除指定长度的字符并在指定的
  • 方法:parseInt()方法 针对前面是数字,后面非数字的情况 例: var string ="123测试"; var num1=parseInt(string);//num1=123 若数字前面含有非数字字符,则不适用 var string ="测试123测试"; var num1=...
  • python中如何从字符提取数字?比如:字符如下:A1.45,b5,6.45,8.82 提取成:[1.45,5,6.45,8.82] 使用正则表达式,用法如下: ## 总结## ^ 匹配字符的开始。## $ 匹配字符的结尾。## \b 匹配个单词的...
  • python提取字符中的数字

    万次阅读 多人点赞 2021-05-11 19:18:58
    isdigit()函数是检测输入字符是否只由数字组成。如果字符只包含数字则返回 True 否则返回 False。 dream = "123456" print(dream.isdigit()) # 返回:True dream = "123abc456" print(dream.isdigit()) # 返回...
  • * 从字符提取数字,比如11,21等 * @param str * @return */ public List<String> extractNumbersFromString(String str){ String regex = "(\\d+)"; List<String> nums = new ArrayList<&...
  • 用python提取字符中的数字

    千次阅读 2021-04-25 10:23:26
    获取个字符from_string ## 1.2.取出from_string的第数字 ### 1.2.1.遍历from_string,找到第数字 ### 1.2.2.存到get_numbers列表中 ### 1.2.3.计算出第数字在from_string的位置start_num ## ...
  • python/正则 从字符提取数字

    千次阅读 2020-08-10 09:52:48
    string = ‘Argentina:111...提取出[111,110,106] 代码如下: import re string = 'Argentina:111min|UK:110min|Poland:106min(dvdrelease)' num_list = re.findall('\d+', str(string)) # num_list 为[111,110,106]
  • 使用awk提取字符中的数字或字母

    千次阅读 2021-05-17 10:46:47
    1.提取字符中的数字$echo'dsFUs34tg*fs5a%8ar%$#@'|awk-F""'{for(i=1;i<=NF;i++){if($i~/[[:digit:]]/){str=$istr1=(str1str)}}printstr1}'输出3458或$echo'dsFUs34tg*fs5a%8ar%$#@'|awk-F""'{for(i=1;i&l...
  • 这篇文章给大家介绍的内容是关于php实现提取字符数字的方法总结(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。PHP提取字符中的第数字...
  • 提取出的数字: array (  0 =>   array (  0 => '116666294488',  1 => '807815528757',  2 => '17324675',  3 => '8',  4 => '078',  5 => '6734',  6 => '46628',  7 => '1',  8 => '46',...
  • python 筛选提取输入中的内容
  • 因需要在mysql的数据表中某字符中的字段提取数字,在网上找了一通,终于找到了个可用的mysql函数,可以有效的从字符提取数字。该mysql提取出字符中的数字函数如下:复制代码 代码如下:CREATE ...
  • python 从字符提取数字,负数、小数、浮点数 使用正则表达式: import re text = "line channel [7], device_id[98], sf[7], rssi [-73.558510], snr [-7.000000], seq [1210],skip_seq 0 " #par='-?\d+\.*\d*' ...
  • 问题:从字符“1小时12分钟”中(其中两个数字是变化的)截取出1和12.或者说“共12页”截取出12 切片的方法比较简单,但不适合变化的字符。 filter(str.isdigit,"1小时12分钟")返回的列表是:['1','1','2'] ...
  • 需求:只要其中的数字 var livetime = '送30小时直播'; var livetimes = parseInt(livetime .replace(/[^0-9]/ig,"")); console.log(livetimes ); // 30
  • 如何提取字符中的纯数字
  • 原博文2019-07-04 15:09 −#\d 匹配数字字符。等价于 [0-9] #\D 匹配个非数字字符。等价于 [^0-9] #提取汉字 import re string = "hello,world!!%[545]你好234asd完全额。。。" str = re.sub("[A-Za-z0-9\!\%\...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,806
精华内容 6,722
关键字:

如何筛选一串数字提取