python基于模式拆分长输出字符串(无分隔符)
我是python新手,我尝试使用(PyPDF2)阅读PDF地图。我得到这个作为输出。我想从这个输出中提取与某个模式匹配的数据[RIY-DIRAHH-015524.49121946.651068]。我只需要那些只有这种模式的值。图案的长度各不相同[30-34]。修正了[RIY-DIRAHH-0155],而变化只发生在横向/纵向[24.49121946.651068] 请帮助提取/拆分特定值(匹配模式)。如果有任何其他解决方案可用于阅读PDF地图。请告知。提前谢谢python基于模式拆分长输出字符串(无分隔符),python,python-3.x,string,split,Python,Python 3.x,String,Split,我是python新手,我尝试使用(PyPDF2)阅读PDF地图。我得到这个作为输出。我想从这个输出中提取与某个模式匹配的数据[RIY-DIRAHH-015524.49121946.651068]。我只需要那些只有这种模式的值。图案的长度各不相同[30-34]。修正了[RIY-DIRAHH-0155],而变化只发生在横向/纵向[24.49121946.651068] 请帮助提取/拆分特定值(匹配模式)。如果有任何其他解决方案可用于阅读PDF地图。请告知。提前谢谢 import re x='resu
import re
x='result of PDF map'[image1]
result = re.search('\w{3}-\w{6}-\d*.\d*.\d*',x)
#output
['', '', '', '', '']
.这里有一个适用于您的正则表达式:
re.findall(r"RIY-[A-Z]{6}-\d{6}\.\d{8}\.\d{5,7}", text)
结果是:
'RIY-OUHOMH-100224.53476846.650127',
'RIY-OUHOMH-100324.53282546.65039',
'RIY-OUHOMH-100424.53224446.651758',
'RIY-OUHOHH-100724.52902946.653571',
'RIY-OUHOHH-100624.53007146.651934',
'RIY-OUHOHH-100524.53178646.65279',
'RIY-OUHOMH-100124.53597246.649456',
'RIY-DIRAHH-015124.49540746.641877',
'RIY-DIRAHH-015224.49410546.644253',
'RIY-DIRAHH-015324.49267846.646789',
'RIY-DIRAHH-015424.49144946.649107',
'RIY-DIRAHH-015524.49121946.651068',
'RIY-DIRAHH-015624.49343446.652505',
'RIY-DIRAHH-015724.49563146.653924',
...
编辑
要将其分为几列,整个代码如下:
out = re.findall(r"RIY-[A-Z]{6}-\d{6}\.\d{6,8}\.\d{5,7}", text)
df = pd.DataFrame(out, columns = ["RIY"])
df["col1"] = df.RIY.str[0:15]
df["col2"] = df.RIY.str[15:24]
df["col3"] = df.RIY.str[24:]
df
将如下所示:
RIY col1 col2 col3
0 RIY-OUHOMH-100224.53476846.650127 RIY-OUHOMH-1002 24.534768 46.650127
1 RIY-OUHOMH-100324.53282546.65039 RIY-OUHOMH-1003 24.532825 46.65039
2 RIY-OUHOMH-100424.53224446.651758 RIY-OUHOMH-1004 24.532244 46.651758
3 RIY-OUHOHH-100724.52902946.653571 RIY-OUHOHH-1007 24.529029 46.653571
4 RIY-OUHOHH-100624.53007146.651934 RIY-OUHOHH-1006 24.530071 46.651934
您能将示例输入(和预期输出)添加为文本吗?这是否回答了您的问题?请看一看。我只想提取这个,开始和结束的文字需要删除。谢谢你,亲爱的。是否可以将此“RIY-OUHOMH-100124.53597246.649456”分隔为“RIY-OUHOMH-1001”“24.535972”“46.649456”您将此分隔是什么意思?把它分解成一个由(1)RIY,(2)OUHOMH,(3)100124等组成的元组?对于输出中的每个元素,我想把它分解成3列,从这个RIY-DIRAHH-015724.49563146.653924到Col1(RIY-DIRAHH-0157)Col2(24.495631)Col3(46.653924)当然。如果给定项的文本是't',请使用:col1=t[0:15]col2=t[15:24]col3=t[24:]我正在尝试从这个RIY-dirah-015724.49563146.653924到col1(RIY-dirah-0157)col2(24.495631)col3(46.653924)
导入re
out=re.findall(r“RIY-[a-Z]{6}-\d}.\d{6,8}文本)导入熊猫作为pd
df=pd.DataFrame(out)df.set_轴(['Raw_Data',axis=1,inplace=False)
df.extract('RIY-[A-Z]{6})-(“\d{6}.\d{6,8}.\d{5,7}”+,expand=True)错误:AttributeError DataFrame:'DataFrame'对象没有属性'extract'