Подтвердить что ты не робот

RegEx Начинается с [и заканчивается]

Что такое регулярное выражение, чтобы найти строки, начинающиеся с [и заканчивающиеся на]. Между [и] все виды символов прекрасны.

4b9b3361

Ответ 1

[ и ] являются специальными символами в регулярных выражениях, поэтому вам необходимо их избежать. Это должно сработать для вас:

\[.*?\]

.*? выполняет нежелательное соответствие любого символа. Нежелательный аспект гарантирует, что вы будете соответствовать [abc] вместо [abc]def]. Добавьте ведущую ^ и конечную $, если вы хотите совместить всю строку, например. нет совпадения вообще в abc[def]ghi.

Ответ 2

^\[.*\]$

будет соответствовать строке, которая начинается с [ и заканчивается на ]. В С#:

foundMatch = Regex.IsMatch(subjectString, @"^\[.*\]$");

Если вы ищете строки с разделителями-скобками внутри более длинных строк (например, найдите [bar] внутри foo [bar] baz), используйте

\[[^[\]]*\]

В С#:

MatchCollection allMatchResults = null;
Regex regexObj = new Regex(@"\[[^[\]]*\]");
allMatchResults = regexObj.Matches(subjectString);

Объяснение:

\[        # match a literal [
 [^[\]]*  # match zero or more characters except [ or ]
\]        # match a literal ]

Ответ 3

Это должно работать:

^\[.+\]$

^ - "начало строки"
\[ является экранированным [, поскольку [является управляющим символом
.+ соответствует всем строкам длины >= 1 (. является "любым символом", + означает "совпадение предыдущего шаблона один или несколько раз" )
\] является экранированным]
$ - это "конец строки"

Если вы хотите также совместить [], измените + на a * ('match zero or more times')

Затем используйте класс Regex для соответствия:

bool match = Regex.IsMatch(input, "^\[.+\]$");

или, если вы используете это несколько раз или в цикле, создайте экземпляр Regex для повышения производительности:

private static readonly Regex s_MyRegexPatternThingy = new Regex("^\[.+\]$");

bool match = s_MyRegexPatternThingy.IsMatch(input);

Ответ 4

Для скобок вам нужно использовать escape-символ \.
Используйте .+, если вы хотите иметь по крайней мере 1 символ между скобками или .*, если вы принимаете эту строку: [].

^\[.*\]$