Wyszukiwanie ciągu zgodnego z maską

0

Witam,

tworzę aplikację, która posiada moduł wyszukujący w pliku pdf nazwy pewnych elementów. Plik pdf, który podlega analizie zawiera ok. 300-400 stron tekstu. Nazwy elementów, które mają zostać wyszukane, znajdują się w losowych miejscach pliku, ale zawsze w postaci [\n][nazwa elementu][spacja][integer 0-50]. Czy istnieje jakaś gotowa funkcja w C# bądź jakiś algorytm, który przeszuka ciąg w poszukiwaniu wszystkich podciągów pasujących do tej maski? Zależy mi na jakimś gotowym rozwiązaniu bo ze względu na ilość danych i fakt, że ten moduł będzie często uruchamiany, chciałbym osiągnąć jak najniższą złożoność obliczeniową.

0

podaj dokldanie pare przykladow tego co ma wyszukac

0

Samo przeszukiwanie tekstu najlepiej byłoby wykonać wyrażeniem regularnym (pomocna w tym jest klasa Regex). Do wydłubania tekstu z PDFa musisz użyć jakiejś biblioteki, w tym aspekcie niestety nie pomogę.

1
  1. Tutaj masz jakis przykladowy regex
    https://regex101.com/r/zR3bN5/3
    Problem tego jest tutaj ze nie wylapie pojedynczej liczby (wylapie 01 ale nie wypalapie 1)

  2. Do czytania/edytowania pdfow do C# polecam itextsharp

0

Przykładowo, z ciągu:

07LQQCT 0 COALING SYSTEM 1762.0891 o11o2
Z-M1-MA_OPP 10 CCPD 90.00
PROJECT 3D-SUPPORT
CCS 2 OP
PIPE SYSTEM - MODELS 3D -004.000 CC-1Z22
Z1-MA-SP_GND 1 PIPE RACK SICON

algorytm powinien zwrócić:

  • 07LQQCT
  • Z-M1-MA_OPP
  • CCS
  • Z1-MA-SP_GND

Jeśli chodzi o obsługę pdf to mam ją już zrealizowaną i tekst z pliku mam wczytany do stringa.

1

Jesli to ma byc szybkie to napisz wlasny parser.

Lista narzedzi moze byc dluga, tutaj masz przykladowe zestawienie:
https://en.wikipedia.org/wiki/Comparison_of_parser_generators

1

odpalasz jednego takiego regexa
https://regex101.com/r/zR3bN5/7
a drugiego takiego
https://regex101.com/r/zR3bN5/6

ale jezeli ma byc to szybkie to napisz cos wlasnego

0

Bardzo dziękuję wszystkim za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1