регулярное выражение Java, как добавить '[' в выражение - PullRequest
0 голосов
/ 15 ноября 2009

Я хочу создать регулярное выражение для строк, которое использует специальные символы [ и ].

Значение равно "[action]".

Выражение, которое я использую: "[\\[[\\x00-\\x7F]+\\]]".

Я попытался сделать это, добавив \\ перед [ и ].

Но это не работает.

Может ли кто-нибудь помочь мне с этим.

Ответы [ 3 ]

3 голосов
/ 15 ноября 2009

Возможно, вы хотите удалить заключающие скобки "[]". В регулярных выражениях они означают выбор одного из вложенных символов

1 голос
/ 15 ноября 2009

Два обратных слеша перед скобками открытия и закрытия: \\[ и \\]

Двойная обратная косая черта оценивает одну обратную косую черту в строке. Единственная обратная косая черта выходит за скобки, поэтому они не интерпретируются как окружающие класс символов.

Никаких обратных слешей для скобок, которые объявляют класс символов: [a-z] (вы можете выбрать любой диапазон, который вам нравится, не только от a до z)

Оператор Kleene star соответствует любому количеству символов в диапазоне.

public class Regexp {
    public static void main(final String... args) {
        System.out.println("[action]".matches("\\[[a-z]*\\]"));
    }
}

В моей системе:

$ javac Regexp.java && java Regexp
true
0 голосов
/ 15 ноября 2009

Просто вставьте одну косую черту перед квадратной скобкой.

Два обратных слэша избегают себя, поэтому механизм регулярных выражений видит \[, где [ - специальный символ.

...