ProstaPaczka2

ProstaPaczka2 => Subiekt GT => Wątek zaczęty przez: Piotr w Styczeń 03, 2020, 02:21:19 pm

Tytuł: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Piotr w Styczeń 03, 2020, 02:21:19 pm
(na podstawie zgłoszenia)
W jaki sposób mam użyć opcji pobierania symbolu paczkomatu z uwag dokumentu Subiekta GT?
Jakie mam wprowadzić wyrażenie regularne?
Tytuł: Odp: Jak wybrać symbol paczkomatu z uwag dokumentu?
Wiadomość wysłana przez: Piotr w Styczeń 03, 2020, 02:26:56 pm
W przypadku gdy w uwagach jest jakaś część tekstu, która występuje przed symbolem możemy jej użyć do wyszukiwania:

Przykładowo dla treści:
Paczkomat do wysyłki paczek: BBI005

Możemy zastosować pobieranie 6 znaków po tym wyrażeniu:
(?<=Paczkomat do wysyłki paczek: ).{6,6}

Gdy wiemy, że tekst jest wprowadzany w liniach, to lepiej jest użyć odczytu do końca linii (są paczkomaty z dłuższymi symbolami niż 6 znaków)
(?<=Paczkomat do wysyłki paczek: ).*?(?=\r|\n|\r\n)

A jeżeli na końcu zdania (po symbolu) jest jakiś znak (np. kropka), to najlepiej zastosować wyrażenie:
"Paczkomat do wysyłki paczek: BBI005."
(?<=Paczkomat do wysyłki paczek: ).*?(?=\.)

Tytuł: Odp: Jak wybrać symbol paczkomatu z uwag dokumentu?
Wiadomość wysłana przez: Piotr w Styczeń 17, 2020, 10:23:20 pm
Dla przykładu tekstu:
[OP]|Paczkomat CNO01C (CNO01C)|Wolska 13|Lokalizacja przy ulicy Wolskiej - obok sklepu Top Market|05-650 Chynów|PL|tel: +48 512 370 830|e-mail: icbt7sll4n+69d950742@allegromail.pl [/OP]

Można użyć wyrażenia:
(?<=\[OP]\|.*\().*?(?=\))
Tytuł: Odp: Jak wybrać symbol paczkomatu z uwag dokumentu?
Wiadomość wysłana przez: kidl w Styczeń 18, 2020, 09:07:28 am
Panie Piotrze, dla ZK z Allegro sprawa oczywista, co w przypadku ZK ze sklepu?
Trzeba tworzyć zapis punktu odbioru w PW wg poniższego schematu?
[OP]|Paczkomat CNO01C (CNO01C)|Wolska 13|Lokalizacja przy ulicy Wolskiej - obok sklepu Top Market|05-650 Chynów|PL|tel: +48 512 370 830|e-mail: jak@kowalski.pl [/OP]
Tytuł: Odp: Jak wybrać symbol paczkomatu z uwag dokumentu?
Wiadomość wysłana przez: Piotr w Styczeń 18, 2020, 11:28:32 am
Trudno byłoby dostosować zapis ze sklepu do takiej formy zapisu.
Można skrócić wyrażenie regularne:

(?<=aczkomat ).*?(?= |\.|$)

Będzie brało tekst pomiędzy słowem "aczkomat " a spacją " " lub kropką "." lub końcem pola.

Przy takim podejściu zamówienia ze sklepu internetowego mogą wkładać do pola własnego dokumentu Subiekta zapis:
Paczkomat ABC123 ... dalszy tekst
Paczkomat ABC123.
Paczkomat ABC123

Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Piotr w Luty 10, 2020, 10:30:12 am
Przykład dla wybierania symbolu paczkomatu z pola własnego:
BBI005:Nazwa ulicy 11:...

Aby wybrać pierwszy ciąg znaków do dwukropka należy użyć wyrażenia:
Wyrażenie: ^.*?(?=:)
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Piotr w Marzec 02, 2020, 08:40:53 am
W przypadku gdy wyrażenie  używane w wyrażeniu regularnym występuje kilka razy w danym polu, np:

Cytuj
Paczkomat do wysyłki paczek: Paczkomat WAW30A

To w wyrażeniu regularnym należy wpisać taki ciąg, który jest unikalny:
Nieprawidłowy: (?<=Paczkomat ).*?(?=\r|\n|\r\n)
Prawidłowy: (?<=wysyłki paczek: Paczkomat ).*?(?=\r|\n|\r\n)
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Piotr w Czerwiec 04, 2020, 08:20:21 am
Przykład dla zawartości uwag dokumentu Subiekta GT

Cytuj
abc
Paczkomat: [BBI005]
abc

Wyrażenie regularne: (?<=Paczkomat: \[).*?(?=\])
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Tomek w Wrzesień 21, 2020, 01:07:59 pm
Wyrażenie regularne (Regex) pobierające symbol paczkomatu z dokumentu Subiekt GT o treści:

**200267421*12345678-abcd-1234-abcd-123456789101*allegro(111)*klient*PayU*Allegro Paczkomaty 24/7 InPost*Bez Faktury*Punkt:Paczkomat KAR02M*Ulica 1*11-111 Miasto*

wygląda następująco:

(?<=Paczkomat ).*?(?=\*)
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Piotr w Listopad 06, 2020, 12:20:57 pm
Dla przykładowej zawartości w uwagach:
Forma dostawy: Paczkomaty 24/7
Typ dokumentu: Faktura
PNI: BBI005
Punkt odbioru: Paczkomat BBI005

Jako wyrażenie regularne do wyszukiwania z uwag dokumentu należy wpisać:
(?<=PNI: ).*?(?=\r|\r\n|\n\r|\n)
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Piotr w Listopad 10, 2020, 03:50:37 pm
Dla przykładowej treści w uwagach / polu własnym:
Paczkomat BBI005 (BBI005) | A1: Ul. Przykłądowa 11 | A2: | P: Polska | K: 01-485 | M: Warszawa

Można zastosować wyrażenie wybierające frazę z pomiędzy nawiasów:
(?<=\().*?(?=\))
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Piotr w Listopad 20, 2020, 12:55:25 pm
Dla przykładu pobierania symbolu paczkomatu z uwag dokumentu Subiekta GT:
Odbiór w punkcie - Allegro Paczkomaty InPost InPost dla: (brak) nickuKupujacegoPaczkomat WRO15N (WRO15N), Białowieska 13A, 54-234 Wrocław

Najlepiej zastosować wyrażenie regularne wybierające wartość od słowa "Paczkomat " do nawiasu " (":
(?<=Paczkomat ).*?(?= \()
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Tomek w Marzec 02, 2021, 11:54:24 am
Jeśli w uwagach mamy:

Cytuj
Allegro Paczkomaty 24/7 InPost InPost Paczkomat BIN01F (BIN01F), Partyzantów 14, 26-004 Bieliny

to symbol paczkomatu wybieramy wyrażeniem:

(?<=\().*?(?=\))

czyli wszystkie znaki spomiędzy nawiasów.
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Tomek w Listopad 25, 2021, 10:54:56 am
Jeśli symbol paczkomatu zapisany jest jako:
Cytuj
Allegro Paczkomat 24/7 InPost Gabaryt A
(np. w polu własnym) i musimy wybrać ostatni znak z pola, powinniśmy zastosować wyrażenie:
.$
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Tomek w Lipiec 18, 2022, 01:46:01 pm
Jeśli chcemy pobrać całą zawartość pola własnego jako symbol paczkomatu, należy użyć wyrażenia:

.*
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Tomek w Lipiec 18, 2022, 01:49:30 pm
Dla przykładowych uwag:

paragon|Paczkomaty InPost|BYD01A|Przelew online (DotPay, PayPal)|15|zam nr xyz|6

musimy zacząć pobieranie od drugiego wystąpienia znaku | i zakończyć na najbliższym wystąpieniu znaku |
Najlepiej będzie zastosować wyrażenie:

(?<=^(?:[^|]+\|){2}).*?(?=[|])
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Piotr w Sierpień 29, 2022, 03:52:32 pm
W przypadkach gdzie symbol paczkomatu jest poprzedzony stałym słowem (np.: Paczkomat) i kończy się znakiem, np.:
Cytuj
Paczkomaty InPost*Bez Faktury*Paczkomat SXT01M*

Można użyć wyrażenia:
Cytuj
(?<=Paczkomat ).*?(?=\*)

gdzie:
(?<=Paczkomat ) - wyznacza wyraz rozpoczynający
(?=\*) -  - oznacza znak końcowy.
Znak końcowy poprzedzony jest  znakiem backslash bo gwiazdka jest znakiem specjalnym.
\
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Tomek w Listopad 30, 2022, 03:04:09 pm
Jeśli symbol paczkomatu zawarty jest pomiędzy dwoma znakami @, można go wybrać stosując:

Cytuj
(?<=@).*?(?=@)
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Tomek w Listopad 06, 2023, 09:31:25 am
Jeśli w uwagach mamy zapis w różnych formach - np. czasem

Cytuj
Paczkomat: TOR17A

a czasem

Cytuj
PaczkoPunkt: WAW12B

możemy skorzystać z wyrażenia

Cytuj
(?<=Paczkomat: |PaczkoPunkt: ).*?(?=\r|\r\n|\n\r|\n|$)

które odczyta znaki spomiędzy "Paczkomat: " lub "PaczkoPunkt: ", a końcem linii.
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Tomek w Listopad 14, 2023, 12:29:06 pm
Jeśli symbol paczkomatu znajduje się zawsze w pierwszej linijce uwag, bez żadnego przedrostka i kończy się "enterem", można użyć:
Cytuj
\A.*
Tytuł: Odp: Jak wybrać symbol paczkomatu z dokumentu Subiekta GT?
Wiadomość wysłana przez: Tomek w Listopad 30, 2023, 05:18:37 pm
Jeśli mamy uwagi w następującym formacie:
@NAZWA FIRMY@IMIE@NAZWISKO@MIASTO@KOD POCZTOWY@SYMBOL KRAJU@SYMBOL PACZKOMATU@
to symbol paczkomatu wyciągniemy wyrażeniem:
(?<=^(?:[@].*){7}).*?(?=\@)czyli wszystko co pomiędzy 7, a 8 wystąpieniem znaku @

Jeśli na końcu nie ma znaku @, czyli:
@NAZWA FIRMY@IMIE@NAZWISKO@MIASTO@KOD POCZTOWY@SYMBOL KRAJU@SYMBOL PACZKOMATU
powinniśmy zastosować wyrażenie:
(?<=^(?:[@].*){7}).*?(?=$)czyli od 7 wystąpienia znaku @ do końca linii