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?

Alfre2
źródło

Odpowiedzi:

112

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

Peter Stuifzand
źródło
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
46

Spróbuj użyć \\[lub po prostu \[.

dfa
źródło
16

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

Matt Roy
źródło
11

Czy uciekasz od tego \?

/\[/

Oto pomocne źródło informacji na temat wyrażeń regularnych:

Regular-Expressions.info

matpie
źródło
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 \[.

Zifre
źródło
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:/[\[\]]/

Jaytop
źródło
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 \\[?

Pierre
źródło
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”.

Manish Kumar
źródło
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