Я использую Delphi 7, и это первый раз, когда я использую библиотеку DiRegEx. Мне нужно собрать имена книг, которые находятся в списке. Список длинный, но у него есть идея, что это выглядит как строка: d d? D?: D d? D?
Tesalonickym Tesalonickym 3:15 3:14 2 2 2 2 3:16 Tesalonickym Tesalonickym 3:18 1 3:17 2 Tesalonickym Timoteovi 1: 1 1 Timoteovi 1: 2 1 Timoteovi 1: 3 1 Timoteovi 1: 4
Так что я хочу найти RegEx.Match - это строки «2 Tesalonickym» и «1 Timoteovi». Поэтому я хочу найти ...var contents : TStringList; RegEx: TDIRegEx; WordCount: Integer; s:string; begin Contents := TStringList.Create; RegEx := TDIPerlRegEx.Create{$IFNDEF DI_No_RegEx_Component}(nil){$ENDIF}; Contents.LoadFromFile('.. eference dlouhe CS.txt'); for i:=0 to Contents.count-1 do begin Contents[i]; try RegEx.SetSubjectStr(Contents[i]); RegEx.MatchPattern := 'w+'; WordCount := 0; if RegEx.Match(0) >= 0 then begin repeat Inc(WordCount); s := RegEx.MatchedStr; WriteLn(WordCount, ' - ', s); until RegEx.MatchNext < 0; end; finally RegEx.Free; end; // end try end; // end for end;
Мой код:
dd?d?:dd?d?
И мне нужно изменить регулярное выражение так, (*UCP)^(?:d+s+)?w+(?=s+dd?d?:d)
чтобы оно не было в результате, но должно быть «якорем» или «иглой». Как сделать регулярное выражение (* UCP) ^ (?: D + s +)? W + (? = S + d {1,3}: d)
Результат:
Это полный список из 66 книг Библии в UTF-8. Были некоторые проблемы с шаблоном (* UCP), потому что эти dos не включают такие символы, как Z или s.
Бытие, Исход, Левит, Числа, Deuteronomium, Джошуа, Soudcu, Руфь, 1 Samuel, 2 Samuel, 1 Kralovska; 2 Kralovska; 1 Паралипоменон; 2 Паралипоменон; Ezdras; Nehemjas, Эстер, Работа, Алми, наречия, шоу, письменный письменный ; Izajas; Jeremjas; заработная плата; Ezechiele, Даниил; Ozeas, Иоиль, Амос, Abdijas, Jonas, Михей, Наум, Abakuk; Sofonjas; Ageus; Zacharjas; Malachias; матозный, Marek, Lukas, Ян; Skutky апостольская; Rimanum; 1 Korintskym ; 2 Korintskym; Galatskym; Efezskym; Filipskym; Koloskym; 1 Tesalonickym; 2 Tesalonickym; 1 Timoteovi; 2 Timoteovi; Тито; Filemonovi; Zidum; Jakubuv; 1 Petruv; 2 Petruv; 1 Januv; 2 Januv; 3 Januv; Juduv; Zjeveni Janovo;