Praca z tekstem

0

Witam mam plik txt z tekstem który podaję w załączniku. Chcę napisać program który wyszukuje w tym teksie wartości zaczynające się od WP. i przerabia go na tekst który potrzebuję. Pokaże na przykładzie dla lepszego zobrazowania.

Kawałek kody z pliku w załączniku wygląda tak


;2018-01-25;S820SE;N;BETA-547/V00/P0377;WP.NG-475_00X06;260;;;;1739;1739;2018-01-23;Opakowanie z tektury litej bez druku 204mmx204mmx1mm NIETYPOWE bez klejenia WYRÓB GOTOWY 001 542;624;432;N;PR-WG/1396/01/18;N;;
;2018-01-25;HXL75;T;GALL-006/V02/P1319;WP.ND-056_00X12;235;;;;1345;1488;2018-01-23;Wyrób z TP druk 1str Premium 93mmx58mmx24mm FEFCO 0458 NIE NIE TAK 001 

i chciałbym by program wyszukał z niego wszystkie wyrazy zaczynające się na wp. czyli WP.NG-475_00X06, WP.ND-056_00X12 i przerobił je na następujące
%.NG-475_00X06%
%.ND-056_00X12%

I tutaj moje pytanie jakich funkcji użyć do wyszukiwania tych wyrazów w tekście i zapisywania ich by później przerobić?

1

Użyj do tego wyrażeń regularnych.

2
string st = @";2018-01-25;S820SE;N;BETA-547/V00/P0377;WP.NG-475_00X06;260;;;;1739;1739;2018-01-23;Opakowanie z tektury litej bez druku 204mmx204mmx1mm NIETYPOWE bez klejenia WYRÓB GOTOWY 001 542;624;432;N;PR-WG/1396/01/18;N;;
; 2018 - 01 - 25; HXL75; T; GALL - 006 / V02 / P1319; WP.ND - 056_00X12; 235; ; ; ; 1345; 1488; 2018 - 01 - 23; Wyrób z TP druk 1str Premium 93mmx58mmx24mm FEFCO 0458 NIE NIE TAK 001 ";

int z = 0;
            while (true)
            {
                int k = st.IndexOf("WP.",z);
                if (k < 0) break;
                st=st.Insert(k, "%");
                int k2 = st.IndexOf(';', k);
                st=st.Insert(k2, "%");
                z = k2;
                st = st.Remove(k+1, 2);
            }          
1

użycie "substituting a numbered group" https://docs.microsoft.com/en-us/dotnet/standard/base-types/substitutions-in-regular-expressions#substituting-a-numbered-group

string pattern = @"(WP)([^;]+)";
string[] titles = { ";2018-01-25;S820SE;N;BETA-547/V00/P0377;WP.NG-475_00X06;260;;;;1739;1739;2018-01-23;Opakowanie z tektury litej bez druku 204mmx204mmx1mm NIETYPOWE bez klejenia WYRÓB GOTOWY 001 542;624;432;N;PR-WG/1396/01/18;N;;", 
    ";2018-01-25;HXL75;T;GALL-006/V02/P1319;WP.ND-056_00X12;235;;;;1345;1488;2018-01-23;Wyrób z TP druk 1str Premium 93mmx58mmx24mm FEFCO 0458 NIE NIE TAK 001 ", 
    "WP.NG-475_00X06" };
string replacement = "%$2%";
foreach (string title in titles)
    Console.WriteLine(Regex.Replace(title, pattern, replacement));

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