Autor Wątek: Wyrażenie pobierające identyfikatory do wstawienia numeru listu do Allegro  (Przeczytany 1542 razy)

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1223
W tym wątku będziemy starali się umieszczać przykłady wyrażeń regularnych, które pozwolą na wybieranie danych referencyjnych z serwisu Allegro z dokumentu Subiekta GT, potrzebnych do wstawienia numeru listu do serwisu Allegro.pl

Funkcje te są dostępne w wersji PRERMIUM z poziomu:
SUBIEKT GT -> zębatka -> PO EKSPORCIE -> W ALLEGRO

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1223
Przykład zapisania danych referencyjnych Allegro w polu własnym dokumentu
Allegro/252754e2-1da7-11ea-a296-13f8931fc130/lcsoft

Id zamówienia z pola własnego: (?<=Allegro\/).*?(?=\/)
Login sprzedającego z pola własnego: (?<=Allegro\/.*.\/).*

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1223
Przykład pobierania identyfikatorów z uwag dokumentu:
**111111111*2192bxxx-4xx1-1xxa-bxx0-xxx47debe724*allegro(xxx)*nick*platnosc*...

Id transakcji:
(?<=
  • .\d+.
  • ).{36,36}(?=
  • allegro)

Wybierze wartość: 2192bxxx-4xx1-1xxa-bxx0-xxx47debe724

Id sprzedającego:
(?<=
  • ).\d+.(?=
  • )

wybierze wartość: 111111111

Tomek

  • Administrator
  • Full Member
  • *****
  • Wiadomości: 247
Jeśli dane prezentowane są w następujący sposób:

"*123456789*1234e123-123c-12eb-b12f-9b7b1234567b*allegro(12345)*Client:12345678*PayU*Allegro Paczkomaty InPost*Bez Faktury*38.98*Paczkomat WAW07A*12b12345-123c-12eb-b2cf-ab8f1234e12f*"

możemy użyć wyrażenia pobierającego dane spomiędzy znaków *

(?<=^(?:[^*]+\*){1}).*?(?=[*])
Powyższe wyrażenie pozwala wybrać ciąg znaków spomiędzy pierwszego wystąpienia znaku *, a najbliższego za nim. Po jego zastosowaniu pobrany zostanie następujący ciąg znaków: 123456789

Jeśli chcemy wybrać ciąg znaków zaczynający się na trzeciej gwiazdce i kończący na czwartej, należy podmienić jedynkę na trójkę:

(?<=^(?:[^*]+\*){3}).*?(?=[*])
Analogicznie możemy wybrać każdy pożądany ciąg znaków.