Mam ten ciąg ..

aa reddit down,spectrum new,comcast outage,sa discord park,asd reddit news,

I ten kawałek regexa ..

(?<=,|^|\s)discord(?=,|$|\s).+?(?=,)

..

discord park

Chociaż, żeby pasował do tego ..

sa discord park

Tak więc w ogóle chce, aby dwa pasuje do wszystkich znaków między dwoma przecinkami w ciągu, jeśli istnieje dopasowanie tych samych dwóch przecinków.

Wygląda to straszne, ale dwukrotnie umieściłem poprzedni wyrażenie regularne i umieść | pomiędzy. Jest to dodatkowy wymóg zatwierdzenia odpowiedzi, ponieważ chcę być w stanie umieścić wiele wyrażeń regularnych obok siebie.

(?<=,|^|\s)discord(?=,|$|\s).+?(?=,)|(?<=,|^|\s)reddit(?=,|$|\s).+?(?=,)

To się dopasowało.

discord park i reddit news

Chcesz, żeby pasował ..

as discord park i asd reddit news

1
Fabian 26 październik 2020, 20:25

1 odpowiedź

Najlepsza odpowiedź

Możesz użyć negowanej klasy postaci z alternatywną dla obu słów:

(?<=,|^)[^,]*\b(?:reddit|discord)\b[^,]*

Demo Regex

2
The fourth bird 26 październik 2020, 17:29