Что такое регулярное выражение, чтобы найти строки, начинающиеся с [и заканчивающиеся на]. Между [и] все виды символов прекрасны.
RegEx Начинается с [и заканчивается]
Ответ 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 символ между скобками или .*, если вы принимаете эту строку: [].
^\[.*\]$