在PHP中,我将这里的文本 http://siba.thenetworksolution.it/allegati/H3018500D7FDDE9ACA05671F49F4F3746A69DAF96.1329514.pdf.txt 与以下正则表达式匹配:
preg_match('#(.*(?s))(particella |particelle |p'.|part'.|p |part |mappale |mapp'.|mapp |n'.|'*)'s*('d+['d /'p{Pd}]*)($|.{0,20}(?s)(graffati|particella |particelle |p'.|.*part'.|p |part |mappale |mapp'.|mapp |n'.|subalterno |subalterni |sub'.|s'.|sub |s |'bcat'b|'bcategoria'b|'brendita'b|'bvani'b|'bconsistenza'b|'bR'.C'.'b))#i', $txt, $matches, PREG_OFFSET_CAPTURE, $offset)
与offset = 1155
(即文本中"foglio"一词的偏移量)。
我希望它们与454
匹配(即偏移量之后),但它57/1998
匹配(之后的许多行)。
经过对 regex101.com 的一些测试,我发现问题是前缀 particella
和 454
之间的回车符,但我希望's
匹配换行符。
我如何纠正贪婪,使正则表达式与454
相匹配?
已解决。第二组particella
后有一个空间。