Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python基于模式拆分长输出字符串(无分隔符)_Python_Python 3.x_String_Split - Fatal编程技术网

python基于模式拆分长输出字符串(无分隔符)

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

我是python新手,我尝试使用(PyPDF2)阅读PDF地图。我得到这个作为输出。我想从这个输出中提取与某个模式匹配的数据[RIY-DIRAHH-015524.49121946.651068]。我只需要那些只有这种模式的值。图案的长度各不相同[30-34]。修正了[RIY-DIRAHH-0155],而变化只发生在横向/纵向[24.49121946.651068]

请帮助提取/拆分特定值(匹配模式)。如果有任何其他解决方案可用于阅读PDF地图。请告知。提前谢谢

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'