Jakie wyrażenie regularne pasuje do nawiasu kwadratowego?


100

Chcę wyrażenia regularnego, które pasuje do nawiasu kwadratowego [. Jeszcze takiego nie znalazłem. Myślę, że wypróbowałem wszystkie możliwości, ale nie znalazłem właściwej. Jaki jest prawidłowy regex dla tego?

Odpowiedzi:


112

Co powiesz na użycie ukośnika odwrotnego \przed nawiasem kwadratowym. Zwykle nawiasy kwadratowe pasują do klasy znaków.


20
W przypadku, gdy próbujesz napisać to wyrażenie regularne w C #, musisz użyć \\ przed nawiasem kwadratowym.
Shrewdroid

4
Właściwie nie wiem, gdzie to działa i dlaczego odpowiedź otrzymała tak wysoką rangę.
Vitali Pom


16

Jeśli chcesz dopasować wyrażenie zaczynające się [i kończące na ], użyj \[[^\]]*\].



6

Ogólnie, jeśli potrzebujesz znaku, który jest „specjalny” w wyrażeniach regularnych, po prostu poprzedz go przedrostkiem \. Więc [byłoby dosłownie \[.


5

Jeśli szukasz, aby znaleźć zarówno odmiany nawiasach kwadratowych w tym samym czasie, można użyć następującego wzoru, który określa zakres albo na [znak lub na ]znak:/[\[\]]/


1
Możesz pominąć pierwszy lewy ukośnik. [[\]]pasuje do obu nawiasów. W niektórych dialektach (np regex grep) można pominąć backslash przed ]jeśli umieścić go bezpośrednio po [(bo pusta klasa postaci nie byłoby przydatne) [][]. Ale to nie działa w Javie ani JavaScript.
cayhorstmann

3

czy to działa z zabezpieczeniem przed ukośnikiem przed [?

\[czy \\[?


2

Jeśli chcesz usunąć [lub ]użyć wyrażenia: "\\[|\\]".

Dwa odwrócone ukośniki są umieszczane w nawiasie kwadratowym, a pionowa kreska to „lub”.


Dziękuję Ci!! Żadna z pozostałych odpowiedzi nie działała dla mnie. Próbowałem podzielić ciąg tablicy json na tablicę Java .. Więc musiałem usunąć cudzysłowy i nawiasy kwadratowe, a następnie podzielić na przecinek["item1" , "item2"]
dko
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.