splitwords.pp 644 B

123456789101112131415161718192021222324252627282930
  1. {$mode objfpc}
  2. {$H+}
  3. uses cwstring, sysutils, classes, uregexpr;
  4. Var
  5. Split : TStringList;
  6. S : String;
  7. R : TRegexpr;
  8. E : TEncoding;
  9. begin
  10. R:=nil;
  11. Split:=TStringList.Create;
  12. try
  13. E:=TEncoding.UTF8;
  14. Split.LoadFromFile(ParamStr(1),E);
  15. S:=Split.Text;
  16. r := TRegExpr.Create;
  17. r.spaceChars:=r.spaceChars+'|&@#"''(§^!{})-[]*%`=+/.;:,?';
  18. r.LineSeparators:=#10;
  19. r.Expression :='(\b[^\d\s]+\b)';
  20. if R.Exec(S) then
  21. repeat
  22. Writeln('Found (pos: ',R.MatchPos[0],'): ',System.Copy (S, R.MatchPos [0], R.MatchLen[0]));
  23. until not R.ExecNext;
  24. finally
  25. r.Free;
  26. split.free;
  27. end;
  28. end.