gpt4 book ai didi

python - 如何在 python 2.7 中使用正则表达式在列表中插入换行符?

转载 作者:行者123 更新时间:2023-12-01 00:39:57 26 4
gpt4 key购买 nike

我正在尝试通过 OCR 扫描生成有序数据集。我通过创建一个包含所有“单位”的列表(以换行符分隔)来预处理结果。看起来像这样:

[' 525-11 Prof.Dr.F.J.A.Kreuzer, Nijmegen  onderzoek met betrekking tot de fysiologie van ademhaling en bloedsomloop op grote hoogte  17.500\n', 
' 527-7 Dr.G.Buyze, Utrecht onderzoek naar het kopermetabolisme bij geesteszicken s 9.400\n',
' 527-8 Prof. Dr. Elisabeth P.Steyn Parv\xc3\xa9, Utrecht onderzoek naar de betekenis van thiaminc voor de synthese van vetzuren in het dierlijk lichaam s 5.400\n',
' 532-7 Dr.J.K. Sch\xc3\xb6nfeld, Rotterdam onderzoek over de rol van de L-fase van bacteri\xc3\xabn bij chronische en recidiverende ziekten (1962) f 3.100\n',
' 532-8 A.G.Schuitemaker, Heiloo onderzoek naar het lytisch vermogen van bacteriofagen voor mycobacteri\xc3\xabn f 2.000\n',
' 542-13 Dr.B.Leijnse en Dr.H.M. van Praag, Rotterdam bestudering van het werkingsmechanisme van de anti-depressieve hydrazinen, in bio chemisch en psychiatrisch-psychologisch opzicht f 16.000\n',
' 547-7 Dr.H.K.A. Visser, Groningen onderzoek over de werking van het antidiuretische hormoon en de regulatie van de centrale afgifte van dit hormoon gedurende de kinderleeftijd (1962) s 9.600\n',
' 548-4 Dr.F.Schwarz, Utrecht onderzoek naar de invloed van Exophthalmos Producing Substance op bindweefsel s 13.000\n',
' 562-8 Prof. Dr.J.Droogleever Fortuyn, Groningen onderzoek naar bouw en functie van de middenhersenen (1960-1962) f 13.100\n',
' '
]

我现在想在用此正则表达式标识的所有模式之后插入换行符 (\n):

r" ([0-9]+[-][0-9])"

所以结果应该是,例如:

525-11
Prof.Dr.F.J.A.Kreuzer, Nijmegen onderzoek met betrekking tot de fysiologie van ademhaling en bloedsomloop op grote hoogte 17.500

527-7 Dr.G.Buyze, Utrecht onderzoek naar het kopermetabolisme bij geesteszicken s 9.400

527-8 Prof. Dr. Elisabeth P.Steyn Parv, Utrecht onderzoek naar de betekenis van thiaminc voor de synthese van vetzuren in het dierlijk lichaam s 5.400

我尝试创建一个循环,其中所有匹配模式都替换为相同的匹配模式+新行。但这似乎只工作一次,因此看起来循环出了问题。有谁知 Prop 体出了什么问题吗?

    #import Regular Expression library
import re

#Open a the preprosseced text file
g = open('outputtest2.txt', 'r')
h = open('outputtest3.txt', 'w')
SingularStringTextDOC = g.readlines()
aanvr = re.compile(r" ([0-9]+[-][0-9])")

#Test how the string works
print(SingularStringTextDOC)

#Make a Loop in which in every line in the text of outputtest1.txt is
searched for submission number
for line in SingularStringTextDOC:
if aanvr.match(line):
AddLine = re.sub(r" ([0-9]+[-][0-9]+)", '\g<1>\n', line)

#test result
print(AddLine)

#create a new file in which the new lines are added
IsolatedSubmissionText_Aanvrnum = h.write(AddLine)

结果(包括测试打印):

[ ' 515-16  Prof. Dr.D.B.Kroon, Amsterdam onderzoek naar samenstelling en structuur van ooglens-ciwitten  f 16.900\n', 
" 521-21 Prof.Dr.E.C.Slater, Amsterdam onderzoek over aard en werkingsmechanisme van de zogenaamde 'relaxing factor' (1960 1962) f 12.000\n",
' 525-11 Prof.Dr.F.J.A.Kreuzer, Nijmegen onderzoek met betrekking tot de fysiologie van ademhaling en bloedsomloop op grote hoogte 17.500\n',
' 527-7 Dr.G.Buyze, Utrecht onderzoek naar het kopermetabolisme bij geesteszicken s 9.400\n',
' 527-8 Prof. Dr. Elisabeth P.Steyn Parv\xc3\xa9, Utrecht onderzoek naar de betekenis van thiaminc voor de synthese van vetzuren in het dierlijk lichaam s 5.400\n',
' 532-7 Dr.J.K. Sch\xc3\xb6nfeld, Rotterdam onderzoek over de rol van de L-fase van bacteri\xc3\xabn bij chronische en recidiverende ziekten (1962) f 3.100\n',
' 532-8 A.G.Schuitemaker, Heiloo onderzoek naar het lytisch vermogen van bacteriofagen voor mycobacteri\xc3\xabn f 2.000\n',
' 542-13 Dr.B.Leijnse en Dr.H.M. van Praag, Rotterdam bestudering van het werkingsmechanisme van de anti-depressieve hydrazinen, in bio chemisch en psychiatrisch-psychologisch opzicht f 16.000\n',
' 547-7 Dr.H.K.A. Visser, Groningen onderzoek over de werking van het antidiuretische hormoon en de regulatie van de centrale afgifte van dit hormoon gedurende de kinderleeftijd (1962) s 9.600\n',
' 548-4 Dr.F.Schwarz, Utrecht onderzoek naar de invloed van Exophthalmos Producing Substance op bindweefsel s 13.000\n',
' 562-8 Prof. Dr.J.Droogleever Fortuyn, Groningen onderzoek naar bouw en functie van de middenhersenen (1960-1962) f 13.100\n', ' ']

562-8

Prof. Dr.J.Droogleever Fortuyn, Groningen onderzoek naar bouw en functie van de middenhersenen (1960-1962) f 13.100

最佳答案

我猜您可能只是想在表达式中添加单词边界,而且 + 似乎也丢失了:

\s\b[0-9]+-[0-9]+\b

但不确定。

测试

import re

l = [' 525-11 Prof.Dr.F.J.A.Kreuzer, Nijmegen onderzoek met betrekking tot de fysiologie van ademhaling en bloedsomloop op grote hoogte 17.500\n',
' 527-7 Dr.G.Buyze, Utrecht onderzoek naar het kopermetabolisme bij geesteszicken s 9.400\n',
' 527-8 Prof. Dr. Elisabeth P.Steyn Parv\xc3\xa9, Utrecht onderzoek naar de betekenis van thiaminc voor de synthese van vetzuren in het dierlijk lichaam s 5.400\n',
' 532-7 Dr.J.K. Sch\xc3\xb6nfeld, Rotterdam onderzoek over de rol van de L-fase van bacteri\xc3\xabn bij chronische en recidiverende ziekten (1962) f 3.100\n',
' 532-8 A.G.Schuitemaker, Heiloo onderzoek naar het lytisch vermogen van bacteriofagen voor mycobacteri\xc3\xabn f 2.000\n',
' 542-13 Dr.B.Leijnse en Dr.H.M. van Praag, Rotterdam bestudering van het werkingsmechanisme van de anti-depressieve hydrazinen, in bio chemisch en psychiatrisch-psychologisch opzicht f 16.000\n',
' 547-7 Dr.H.K.A. Visser, Groningen onderzoek over de werking van het antidiuretische hormoon en de regulatie van de centrale afgifte van dit hormoon gedurende de kinderleeftijd (1962) s 9.600\n',
' 548-4 Dr.F.Schwarz, Utrecht onderzoek naar de invloed van Exophthalmos Producing Substance op bindweefsel s 13.000\n',
' 562-8 Prof. Dr.J.Droogleever Fortuyn, Groningen onderzoek naar bouw en functie van de middenhersenen (1960-1962) f 13.100\n',
' '
]

regex = r"(\s\b[0-9]+-[0-9]+\b)"
subst = "\\1\\n"


for index,item in enumerate(l):
l[index] = re.sub(regex, subst, item)

print(l)

输出

[' 525-11\n Prof.Dr.F.J.A.Kreuzer, Nijmegen onderzoek met betrekking tot de fysiologie van ademhaling en bloedsomloop op grote hoogte 17.500\n', ' 527-7\n Dr.G.Buyze, Utrecht onderzoek naar het kopermetabolisme bij geesteszicken s 9.400\n', ' 527-8\n Prof. Dr. Elisabeth P.Steyn Parvé, Utrecht onderzoek naar de betekenis van thiaminc voor de synthese van vetzuren in het dierlijk lichaam s 5.400\n', ' 532-7\n Dr.J.K. Schönfeld, Rotterdam onderzoek over de rol van de L-fase van bacteriën bij chronische en recidiverende ziekten (1962) f 3.100\n', ' 532-8\n A.G.Schuitemaker, Heiloo onderzoek naar het lytisch vermogen van bacteriofagen voor mycobacteriën f 2.000\n', ' 542-13\n Dr.B.Leijnse en Dr.H.M. van Praag, Rotterdam bestudering van het werkingsmechanisme van de anti-depressieve hydrazinen, in bio chemisch en psychiatrisch-psychologisch opzicht f 16.000\n', ' 547-7\n Dr.H.K.A. Visser, Groningen onderzoek over de werking van het antidiuretische hormoon en de regulatie van de centrale afgifte van dit hormoon gedurende de kinderleeftijd (1962) s 9.600\n', ' 548-4\n Dr.F.Schwarz, Utrecht onderzoek naar de invloed van Exophthalmos Producing Substance op bindweefsel s 13.000\n', ' 562-8\n Prof. Dr.J.Droogleever Fortuyn, Groningen onderzoek naar bouw en functie van de middenhersenen (1960-1962) f 13.100\n', ' ']

该表达式在 regex101.com 的右上角面板中进行了解释,如果您想探索/简化/修改它,请在this link中,如果您愿意,您可以观察它如何与一些示例输入匹配。

关于python - 如何在 python 2.7 中使用正则表达式在列表中插入换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57433285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com