Wątek przeniesiony 2022-10-10 13:13 z Inne języki programowania przez Riddle.

Usunięcie białych spacji za pomocą notepad++

0

Hej,

nie wiem jaki zrobić regex aby znaleźć wszystkie spacje, których jest więceh niż 1 w notepad ++

SELECT DISTINCT t1.deployment, t1.Topology,

Mogę mieć różnej wielkości spacje pomiędzy wyrazami

ten regex:
(\S)\s+

zaznacza wszystko ok ale zabiera mi jedną literkę końcową. Co robię nie tak?
Będę wdzięczny za pomoc,
Pozdrawiam,
Jacek

screenshot-20221010104853.png

1

A po co Ci do tego regex? Wpisujesz dwie spacje w szukanych, jedną w zamień na i klikasz zamień wszystko tak długo aż nic nie znajdzie do zamiany.

2

Jak chcesz zostawić regex taki, jaki jest, to nie zamieniaj go w  (pojedynczą spację), tylko w \1 (pierwszą grupę, po czym spację) — to Ci „odda” tę literkę.

Ale, tak w ogóle, to nie dostrzegam na pierwszy rzut oka sensu w (\S) tam u Ciebie w ogóle — samo \s+ zamieniane w  zdaje się robić dokładnie to, co chcesz.

1
jaryszek napisał(a):

nie wiem jaki zrobić regex aby znaleźć wszystkie spacje, których jest więceh niż 1 w notepad ++

SELECT DISTINCT t1.deployment, t1.Topology,

Mogę mieć różnej wielkości spacje pomiędzy wyrazami

ten regex:
(\S)\s+

zaznacza wszystko ok ale zabiera mi jedną literkę końcową. Co robię nie tak?

No robisz nie tak, to że owszem łapiesz \s (czyli każdy whitespace, również tab, enter, etc.), ale wcześniej łapiesz również \S, czyli wszystko co nie jest whitespacem. Literka jest łapana, więc jest usuwana.

Ja bym na Twoim miejscu po prostu użył \s+, nie potrzebujesz tego \S na początku. + to jest "greedy quantifier", to znaczy że znajdzie tyle spacji po sobie ile się da.

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