-
2021-02-09 21:54:42
一条数据可能包含字母,数字以及特殊字符。如果我们只想提取数据字符串中的字母,则可以使用python中可用的各种选项。
使用isalpha
isalpha函数将检查给定字符是否为字母。我们将在for循环中使用它,该循环将从给定的字符串中获取每个字符,并检查它是否为字母。join方法将仅将有效字符捕获到结果中。
示例stringA = "Qwer34^&t%y"
# Given string
print("Given string : ", stringA)
# Find characters
res = ""
for i in stringA:
if i.isalpha():
res = "".join([res, i])
# Result
print("Result: ", res)
输出结果
运行上面的代码给我们以下结果-Given string : Qwer34^&t%y
Result: Qwerty
具有正则表达式
我们可以利用正则表达式模块,并使用findall函数提供仅代表字符的参数值。
示例import re
stringA = "Qwer34^&t%y"
# Given string
print("Given string : ", stringA)
# Find characters
res = "".join(re.findall("[a-zA-Z]+", stringA))
# Result
print("Result: ", res)
输出结果
运行上面的代码给我们以下结果-Given string : Qwer34^&t%y
Result: Qwerty
更多相关内容 -
python从字符串中提取指定内容
2021-01-07 23:41:58我们在做数据处理的时候,会遇到包含多条格式类似的长字符串,比如说 recv = 'Node1_temperature:26 Node1_humidity:48 Node2_temperature:36 Node2_humidity:48 ' \ 'Node3_temperature:24 Node3_humidity:35 Node...前言
我们在做数据处理的时候,会遇到包含多条格式类似的长字符串,比如说
recv = 'Node1_temperature:26 Node1_humidity:48 Node2_temperature:36 Node2_humidity:48 ' \ 'Node3_temperature:24 Node3_humidity:35 Node4_temperature:54 Node4_humidity:48 ' \ 'Node5_temperature:43 Node5_humidity:48 '
从字符串中我们可以看到有五组格式相同的数据,每一组包含temperature和humidity,所以该怎么把这5组数据提取出来呢?
一.使用pre包中的findall方法
例如:提取Node1_temperature的值,我们可以这样做
Node1_temperature = re.findall(r'Node1_temperature:(.*) Node1_humidity', recv)
该例提出的数据是26。从例子可以看出,findall方法的使用: re.findall(r’ 26前面的部分内容(.*)26后面的部分内容’),也即指明前后,来确定中间夹着的内容,指明相对位置得到绝对位置。
二.findall方法的数据返回类型
findall方法返回的数据类型是一个列表,其列表的内容有且只有一个并且是字符串类型的数据,因此可以定义一个变量来接收,该变量接收后成为列表并且只有一个字符串类型的数据。或者另外定义一个列表,先用索引的方式得到该数据,因为只有一个数据,所以索引最大为0:Node1_temperature[0],最后再使用append方法将数据添加到定义好的列表内。如下:
temp = [] Node1_temperature = re.findall(r'Node1_temperature:(.*) Node1_humidity', recv) temp.append(int(Node1_temperature[0]))
三.说明
格式要求:修改单引号内的内容即可,(.)不用更改。(.)前后的内容根据要提取的数据而定,并且要注意的原字符串中某一数据如26的前后如果包含空格,(.*)前后的内容也要包括空格
re.findall(r'Node1_temperature:(.*) Node1_humidity', recv)
四.Demo
import re temp = [] humidity = [] recv = 'Node1_temperature:26 Node1_humidity:48 Node2_temperature:36 Node2_humidity:48 ' \ 'Node3_temperature:24 Node3_humidity:35 Node4_temperature:54 Node4_humidity:48 ' \ 'Node5_temperature:43 Node5_humidity:48 ' Node1_temperature = re.findall(r'Node1_temperature:(.*) Node1_humidity', recv) temp.append(int(Node1_temperature[0])) Node1_humidity = re.findall(r'Node1_humidity:(.*) Node2_temperature', recv) humidity.append(int(Node1_humidity[0])) Node2_temperature = re.findall(r'Node2_temperature:(.*) Node2_humidity', recv) temp.append(int(Node2_temperature[0])) Node2_humidity = re.findall(r'Node2_humidity:(.*) Node3_temperature', recv) humidity.append(int(Node2_humidity[0])) Node3_temperature = re.findall(r'Node3_temperature:(.*) Node3_humidity', recv) temp.append(int(Node3_temperature[0])) Node3_humidity = re.findall(r'Node3_humidity:(.*) Node4_temperature', recv) humidity.append(int(Node3_humidity[0])) Node4_temperature = re.findall(r'Node4_temperature:(.*) Node4_humidity', recv) temp.append(int(Node4_temperature[0])) Node4_humidity = re.findall(r'Node4_humidity:(.*) Node5_temperature', recv) humidity.append(int(Node4_humidity[0])) Node5_temperature = re.findall(r'Node5_temperature:(.*) Node5_humidity', recv) temp.append(int(Node5_temperature[0])) Node5_humidity = re.findall(r'Node5_humidity:(.*) ', recv) humidity.append(int(Node5_humidity[0])) print("5个结点的温度分别为:") print(temp) print("5个结点的湿度分别为:") print(humidity)
五.代码看起来有非常大的改进空间,我相信一定有很好的可以实现相同该类功能的算法,在此请路过的大佬留下建议,谢谢了^ _ ^
-
如何快速在一段字符串中提取想要的字符
2021-11-28 14:41:34substring():这个方法用于提取字符串中介于两个指定下标之间的字符。 语法:steingObject.substring(start,stop) 参数:[start]:必须要有数值,一个非负的整数,规定要提取的字符串的第一个字符在stringObject...如何快速在一段字符串中提取想要的字符
想要实现上面的操作,在之前我会第一时间想到使用正则表达式进行提取,可是在我无意中发现有这么一个方法它能快速地从一段字符串中提取我们想要的字符,
substring():这个方法用于提取字符串中介于两个指定下标之间的字符。
语法:steingObject.substring(start,stop)
参数:[start]:必须要有数值,一个非负的整数,规定要提取的字符串的第一个字符在stringObject中的位置。
[stop]:可有数值也可没有数值,一个非负的整数,比要提取的字符串的最后一个字符在stringObject中的位置多1。如果省略该参数,那么返回的字符串会一直到字符串的结尾。
返回值:一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。
注意:
- substring():方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。
- 如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
实例1:
实例2:
以上就是我的分享,希望对你有所帮助;
-
python_从一个字符串中截取指定字符
2020-06-25 15:36:261.直接上代码 str1 = '>tr|K6Z612|K6Z612_9ALTEBetalactamase Toho1...我的需求是从str1字符串中来截取| |直接的内容两个分割的结果如下图所示,第一行是先对fastaname进行截取,然后分为三部分,之后我们对截取的内1、代码
str1 = '>tr|K6Z612|K6Z612_9ALTEBetalactamase Toho1 OS=Glaciecola arctica BSs20135 GN=bla PE=4 SV=1' re1 = str1.split('|') print(re1) re2 = str1.split('|')[1] print(re2)
我的需求是从str1字符串中来截取| |直接的内容两个分割的结果如下图所示,第一行是先对fastaname进行截取,然后分为三部分,之后我们对截取的内容直接取第二个即可。
2、读取文件
当fastaname数据太多,数据来自fasta文件的时候。先读取文件,然后遍历取出文件(从列表中来取元素),最后从字符串中进行指定字符串进行提取。import csv with open('readcsv_test01.csv', 'r') as f: # 把需要读取的文件和这个python文件放到一个路径下 reader = csv.reader(f) print(type(reader)) for row in reader: print(row)#列表 # print(type(row))#打印类型——列表 rowStrings=row#把列表中的内容赋值给另外一个字符串 for rowString in rowStrings:#遍历 print(rowString) re1 = rowString.split('|') print("======re1=======") print(re1) re2 = rowString.split('|')[1] print("======re2=======") print(re2)
3、读取数据存入文件import csv with open('readcsv_test01.csv', 'r') as f: # 把需要读取的文件和这个python文件放到一个路径下 reader = csv.reader(f) print(type(reader)) for row in reader: print(row) # print(type(row))#打印类型——列表 rowStrings=row for rowString in rowStrings: print(rowString) re1 = rowString.split('|') print("======re1=======") print(re1) re2 = rowString.split('|')[1] print("======re2=======") print(re2) #把结果在写入csv文件 tmp = open("writercsv_test02.csv", 'w', newline='') # r只读模式,newline 新行 writer = csv.writer(tmp, delimiter=' ') # reader是一个迭代器,delimiter分隔符 writer.writerow([1]) writer.writerows([[re2]]) tmp.close() print("======close=======")
-
python提取一个指定字符串的指定内容
2021-10-31 00:53:03取得字符串中的姓名 import os file_name1 = [] filepath = "C:\\Users\\Administrator\\Desktop\\test\\"#读取指定文件夹下的内容 filename = os.listdir(filepath)#获取到文件夹下的所有文件名,保存至列表里 for ... -
python从字符串中提取指定的内容
2020-12-02 12:17:16有如下字符串:text=cssPath:"http://imgcache.qq.com/ptlogin/v4/style/32",sig:"OvL7F1OQEojtPkn5x2xdj1*uYPm*H3mpaOf3rs2M",clientip:"82ee3af631dd6ffe",serverip:"",version:"201404010930"怎么提取元素为sig的... -
提取字符串中的指定位置(截取字符串、提取字符串)
2019-03-21 18:17:49版权声明:转载需标明该文链接。 ... 一、利用C++自带字符串函数: np1 = str.find_first_of('abc'); // 获取字符串中第一个指定字符(串)的位置 np2= str.find_last_of('.'); // 获取字符... -
C# 从字符串中提取指定字符类型的内容
2020-05-13 08:20:35从一段字符串中,提取中文、英文、数字 中文字符30Margin中文字符40HorizontalAlignment 正则表达式: 1 /// <summary> 2 /// 英文字母与数字 3 /// </summary> 4 public const string ... -
C++中在字符串中提取子字符串
2019-08-15 15:53:43C++中在字符串中提取子字符串 从字符串中提取子字符串是指将一个字符串中的一部分截取下来形成一个新的字符串。 #include <iostream> int main(int argc,const char* argv[]) { std::string str1 = "Hello... -
Java—提取字符串中指定的字符(取井号间的字符)
2021-05-06 15:05:13Java—提取字符串中指定的字符(取井号间的字符) 一、内容介绍: 有一字符串,格式为:“#detailOne#detailTwo#detailThree#”,现需要将“#”间的内容1、内容2和内容3分别提取出来,赋给detailOne、detailTwo和... -
c++中在字符串中提取数据
2019-07-14 20:40:12在字符串中提取数据是编程中必不可少的环节。c语言中字符串是通过char数据实现的,c++帮我们封装好了string这个类型,我们直接通过这个类型来声明字符串。 #include<iostream> #include<string> #... -
在字符串中获取指定位置的一段字符(java)
2018-11-28 13:43:36一、获取某个字符后面的一段字符串。 如我想获得 图片acb.jpg 的格式 jpg,即获取 . 后面的字符串。 String str = "abc.jpg"; String str2 = str.substring(str.indexOf('.')+1); 二、获取某个... -
python如何提取字符串中的指定的内容?
2020-11-21 00:11:21最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中:all_the_text = open('thefile.txt').read( )# 文本文件中的所有文本all_the_data = open('abinfile','rb').read( )# 二进制文件中的所有数据为了... -
python 从字符串中提取数字
2021-05-25 23:05:50# 含有数字的字符串(可以看到有小数和整数) string = "#$1.23,zimu3,520.1314, 300" # 获取所有数字 print(re.findall(r"\d+",string)) # 获取所有数值(包含小数一起识别匹配) print(re.findall(r"\d+\.?\d*... -
python如何在字符串中提取浮点数字并相加
2020-12-24 07:09:12python中如何从字符串中提取数字?比如:字符串如下:A1.45,b5,6.45,8.82 提取成:[1.45,5,6.45,8.82] 使用正则表达式,用法如下: ## 总结## ^ 匹配字符串的开始。## $ 匹配字符串的结尾。## \b 匹配一个单词的... -
从字符串中提取出需要的内容
2020-09-17 23:20:24输入一段字符串,从中提取1000-3999(包括1000,3999),输入并打印,以空格隔开 列如 输入:20201515abc2020 100 4000 3999 输出:2020 3999 思路 1.定义一个截取字符串数组,遍历输入的字符串,如果字符属于0-9,... -
【Python】从字符串中提取字母字符串的几种方法
2020-12-05 04:17:42最近作为技术面试官协助公司招聘新人,应聘者大多都学习python 1~2年,不过在面试过程中,我问了很简单的题目,好多都没有完全的回答上了。 不说了,直接贴题目:题目: s = 'abc@124, efg opAs4',请把其中的字母... -
Python中提取指定字符串
2017-05-05 11:03:56Python中提取指定字符串,从一个字符串中提取里面的内容,整理了两种实现方式,后续有更多的实现方式继续更新 代码如下:#coding:utf8 import re import sys reload(sys) sys.setdefaultencoding('utf8') #!/usr/... -
python如何提取字符串
2021-03-06 06:17:30下面讲解用正则表达式来提取字符串。一、单个位置的字符串提取这种情况我们可以使用(.+?)这个正则表达式来提取。 举例,一个字符串"a123b",如果我们想提取ab之间的值123,可以使用findall配合正则表达式,这样会返回... -
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]我认为这比正则表达式的例子好三个原因。首先,你不需要另一... -
python环境下从字符串中提取数字
2020-01-09 23:06:05在实际编程应用中,经常需要从一堆文字中提取数值。笔者在爬虫应用中就遇到了这个问题,现找到两种解决方案,供参考! -
运用wps在excel一串数字中提取中间某几位字符拼接编辑
2020-05-26 11:54:12以及一些功能性符号,字符是计算机或电子通信中字母、数字、符号的统称,是数据结构中数据存取中最小的数据单位,通常有8个二进制单位(一个字节)来表示一个字符,字符是计算机中最常用的二进制编码形式,是计算机... -
从字符串中提取数字、字母
2020-05-28 17:44:23正则表达式 1 提取中文:regEx=“[\u4e00-\u9fa5]"; 2 提取数字:regEx=“[0-9]";...已知字符串:String str = K960+055=JGK1048+949 public String getNum(String str) { String regEx = "[0-9]"; String re -
R语言将字符串中的数字提取出来作为值
2021-05-06 20:01:17TRUE) #(\\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)",... -
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. -
java中如何截取字符串中的指定一部分
2021-02-12 11:23:38展开全部java用substring函数截取string中一段字符串在String中有两个substring()函数,如下:一:String.substring(intstart)参数:start:要截取位置的索引返回:从start开始到结束62616964757a686964616fe58685e5... -
Java如何从字符串中提取数字
2022-03-21 16:44:36接下来介绍几种从字符串中提取数字的方法。 1.正则表达式 这里正则表达式表示匹配除数字以外的字符,然后replaceAll方法使用空字符代替匹配的字符,这样剩下的字符串 就只包括数字。最后只需要将str转换为int类型就... -
sscanf从字符串中按照指定格式提取数据
2019-06-29 15:42:04我们在学习C语言的时候,一定都使用过scanf函数,它表示从标准输入中按照指定格式接收数据到变量。实际编程中,我们常常希望能从字符串中,提取想要的数据时,此时我们就可以派上sscanf函数了. sscanf sscanf 函数... -
Java提取字符串中的数字
2021-02-26 16:49:16在Java中,如果输入一串由其他非数字字符隔开的数字,但却想要将其中的数字提取出来,网上已经给出多种解决方案,以下对这些方法及其对应的情况进行简单的总结,并提出自己的解决方案:1.多个由不确定字符隔开的单个...