Regex - Źle "matchowana" grupa mimo wydawałoby się poprawnej składni.

0

https://regex101.com/r/n797Fi/1
Regexy jak już muszę piszę metodą prób i błędów więc czegoś nie potrafię ogarnąć. Mam cztery takie same grupy do złapania ([+-]?\d+\.?\d*) czyli dodatnie i ujemne floaty -14.1. Dla trzech pierwszych grup wszystko działa jak powinno, np. jak pojawi mi się jakiś znak nie będący cyfrą lub kropką to nie mam matcha - np. 14c.4 skończy się failem.

Wyjątkiem jest ostatnia grupa, gdzie mogę wstawić literę na poczatku, w środku lub na końcu i match skończy się sukcesem https://regex101.com/r/nyaSCk/1

4

Jeśli dobrze rozumiem o co Ci chodzi, to brakuje Ci ^ oraz $ (czyli powinieneś mieć ^twojewyrażenie$) - to spowoduje, że regex dopasuje się wyłącznie do całej linijki albo wcale.

Zauważ, że z Twoim oryginalnym regexem coś takiego również jest matchem:

XD"file.ext" 0.0 0.0 3338.0 22c05.0

... i to właśnie z braku ^+$, ponieważ silnik stwierdza oke, no może i nie matchuje się na początku oraz końcu, ale jeśli zignoruje pierwsze dwa znaki oraz ostatnie pięć znaków, to wszystko gra.

1 użytkowników online, w tym zalogowanych: 0, gości: 1