Chcę zamienić wszystkie więcej niż 2 białe spacje w ciągu, ale nie nowe wiersze, mam to wyrażenie regularne: \s{2,}
ale pasuje również do nowych wierszy.
Jak mogę dopasować tylko 2 lub więcej białych spacji, a nie nowe linie?
Używam c #
Chcę zamienić wszystkie więcej niż 2 białe spacje w ciągu, ale nie nowe wiersze, mam to wyrażenie regularne: \s{2,}
ale pasuje również do nowych wierszy.
Jak mogę dopasować tylko 2 lub więcej białych spacji, a nie nowe linie?
Używam c #
Odpowiedzi:
Umieść znaki spacji, które chcesz dopasować, wewnątrz klasy znaków. Na przykład:
[ \t]{2,}
dopasowuje 2 lub więcej spacji lub tabulatorów.
Możesz też:
[^\S\r\n]{2,}
który pasuje do każdego white-space char wyjątkiem \r
i \n
co najmniej dwa razy (zauważ, że kapitał S
w \S
to skrót [^\s]
).
\s{2,}
przechwytuje nowe linie poprzedzające ją? Gdyby tak było \n\s{2,}
, zrozumiałbym. I dlaczego działa wpisanie dosłownej spacji w nawiasach?
\s
dopasowuje spacje, tabulatory i podziały wierszy. „A dlaczego wpisywanie dosłownej spacji w nawiasach kwadratowych działa?”, No cóż, błąd, bo tak. Nie wiem, co jeszcze o tym powiedzieć :)