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