Mam następujące dane wejściowe

 Obvious directions are:
  west, east, southeast, south.

... i chcesz następujący wyjście:

west east southeast south

Jaki byłby magiczny regex, który to dla mnie zrobił?

Dostałem aż do wyodrębniania pierwszego tokena, {x0}}, więc myśląc, że potrzebuję mnożnika / rekurencyjny / coś lub innego, ale nie może dla życia mnie znaleźć co.

(?<= Obvious directions are:\s+)(\w+)(?=[,\.])
1
Sami Lamti 18 październik 2020, 22:22

1 odpowiedź

Najlepsza odpowiedź

Posługiwać się

(?<=Obvious directions are:[^.]*?)\w+

Zobacz Dowód.

Wyjaśnienie

--------------------------------------------------------------------------------
  (?<=                     look behind to see if there is:
--------------------------------------------------------------------------------
    Obvious directions       'Obvious directions are:'
    are:
--------------------------------------------------------------------------------
    [^.]*?                   any character except: '.' (0 or more
                             times (matching the least amount
                             possible))
--------------------------------------------------------------------------------
  )                        end of look-behind
--------------------------------------------------------------------------------
  \w+                      word characters (a-z, A-Z, 0-9, _) (1 or
                           more times (matching the most amount
                           possible))
3
Ryszard Czech 18 październik 2020, 20:09