Last Updated 4 months ago

AAaa Wyrażenia regularne (regex) w PrestaShop Importer - przykłady


Wyrażenia regularne (regex) to ogromny potencjał wspierający obróbkę dowolnych, krótki i długich treści. Raz opanowane przydadzą Ci się w wielu sytuacjach w życiu.

  1. Moduł PrestaShop Importer obsługuje wyrażenia regularne.
  2. Dzięki wyrażeniom regularnym możesz modyfikować lub obrabiać dane w pliku do dowolnych potrzeb, zanim te trafią do Twojego sklepu.
  3. Wyrażenia regularne możesz stosować na niemal każdym polu, które chcesz importować lub aktualizować z XML, CSV lub API do PrestaShop.
W Internecie znajduje się wiele samouczków wyrażeń regularnych, np. https://miroslawmamczur.pl/wyrazenia-regularne-czym-sa-i-jak-pisac-wlasne-regexy/

Poniżej zamieszczamy listę przykładowych problemów do rozwiązania z treściami, jakie znajdują się w feedach produktowych. Podajemy również gotowe wyrażenia regularne, za pomocą których zmodyfikujesz treści lub pobierzesz z nich tylko określone fragmenty.


---------------------

Przykład 1


Treść w pliku:
Pojemność: 4400 mAh;Napięcie: 10.8V (11.1V);Ilość ogniw: 6;Rodzaj ogniw: Li-Ion;Gwarancja: 12 miesięcy;Producent ogniw: Green Cell;Kolor: Czarny;Zabezpieczenie przed głębokim rozładowaniem: Tak;Zabezpieczenie przed przeładowaniem: Tak;Kod produktu: HP01;Producent: Green Cell;Wymiary: 205x52x21mm;Waga: 300g ;Lista kompatybilności: ;Zastępuje modele

Problem:
Do krótkiego opisu chce dać wszystko co jest przed tekstem ";lista kompatybilności"

Rozwiązanie:
Wyrażenie regularne:
/^(.+);Lista kompatybilności/
Zamiennik:
$1

---------------------

Przykład 2


Treść w pliku:
CZUJNIK TEMPERATURY SPALIN OPEL ASTRA H 1.3CDTI 2005-,CORSA C 1.3CDTI 2005-,MERIVA 1.3CDTI 2003-/OWALNY-ZA FILTREM CZĄSTEK STAŁYCH/

Problem:
Nazwa produktu jest zbyt długa, należy ją skrócić do maks 120 znaków tak aby uciąć wyrazu na końcu pobranego tekstu.

Rozwiązanie:
Wyrażenie regularne:
/(^.{0,120}($|[\s]+)).*/
Zamiennik:
$1

---------------------

Przykład 3


Treść w pliku:
image

Problem:
Cechy są podawane według schematu:
Nazwa: wartość
w jaki sposób pobrać tylko nazwę cechy?

Rozwiązanie:
Wyrażenie regularne:
/^([^:]+)+\s*:\s*(.+)$/
Zamiennik:
$1

---------------------

Przykład 4


Treść w pliku:
1,00

Problem:
Ilość dostępna w magazynie jest podana jako liczba zmiennoprzecinkowa zamiast liczby całkowitej.
W jaki sposób usunąć zbędne znaki tj, przecinek i cyfry po nim?

Rozwiązanie:
Wyrażenie regularne:
/,[0-9]+$/
Zamiennik:
pole należy zostawić puste

---------------------

Przykład 5


Treść w pliku:
Maszynka do mielenia mięsa Tefal NE113135

Problem:
Chciałbym zrobić tagi oddzielone przecinkiem z nazwy produktu.
W jaki sposób zamienić spacje między wyrazami na przecinki?

Rozwiązanie:
Wyrażenie regularne:
/\s/
Zamiennik:
,

---------------------

Przykład 6


Treść w pliku:
12,435345
12.56456

Problem:
W jaki sposób ograniczyć importowaną liczbę do maks dwóch miejsc po przecinku?

Rozwiązanie:
Wyrażenie regularne:
/^([0-9]+[,.]{1}[0-9]{2}).*$/
Zamiennik:
$1

---------------------

Przykład 7


Treść w pliku:
[pusta]

Problem:
W jaki sposób podmienić pustą zawartość na inną np. liczbę 100?

Rozwiązanie:
Wyrażenie regularne:
/^\s*$/
Zamiennik:
100

Please Wait!

Please wait... it will take a second!