我正在尝试通过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


我试图制作一个循环,其中所有匹配的模式都用相同的匹配模式+新行替换。但这似乎只能一次执行,因此循环似乎出了点问题。有谁知道到底出了什么问题?

    #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 \ nF.J.A。Kreuzer博士,奈梅亨·onderzoek教授见面
  费德洛神父论学校
  17.500 \ n','527-7 \ n乌兹别克斯坦大学的Boyze博士,9.400 \ n','527-8 \ n教授
  伊丽莎白·P·施泰因·帕尔维(Elisabeth P.SteynParvé),乌得勒支(Utrecht)onderzoek naar de betekenis van
  维生素D合成的范维祖伦
  5.400 \ n','532-7 \ n Dr.J.K. Schönfeld,鹿特丹onderzoek在de rol van de L-fase vanbacteriÃnn bij chronische en recidiverende
  ziekten(1962)f 3.100 \ n','532-8 \ n A.G. Schuitemaker,Heiloo
  onderzoek naar het lytisch vermogen van细菌细菌素
  分枝杆菌n = 2.000 \ n','542-13 \ n Dr.B.Leijnse和Dr.H.M.货车
  鹿特丹的普拉格(Praag)效仿范·赫特·沃金斯(van het werkingsmechanisme van de)
  生物化学中的抗抑郁肼
  Dr.H.K.A.的psychiatrisch-psychologisch opzicht f 16.000 \ n','547-7 \ n。
  威瑟(Visser),格罗宁根(Groningen onderzoek)在德韦金·范·赫特(Bird Het)
  hormoon en de regulatie范德中心范迪特hormoon
  gedurende de kinderleeftijd(1962)s 9.600 \ n','548-4 \ n
  F.Schwarz博士,乌得勒支onderzoek naar de invloed van Exophthalmos
  结合物生产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中查看该表达式与某些示例输入的匹配方式。

10-01 20:26