Regex в C # вопрос - PullRequest
       1

Regex в C # вопрос

1 голос
/ 22 июля 2010

пытался выяснить escape-символ для "[" и "]" в регулярном выражении. У меня есть следующий шаблон строки, и эта строка является фактической строкой:

[SomeString] [anotherstring]

Таким образом, строка будет начинаться с «[», за которым следует somestring, затем следует «]», затем «[», затем еще одна строка и «]».

Может кто-нибудь предложить?

Ответы [ 3 ]

2 голосов
/ 22 июля 2010
@"(\[[^\]]+\]){2}"

Я думаю (моя голова немного болит).

Обратите внимание, это будет соответствовать чему-нибудь между [ и ].

2 голосов
/ 22 июля 2010

Если это только 1 уровень и вы хотите разобрать строки, то вам не нужен RegEx:

string composition = "[somestring][anotherstring]";
string[] stringSeparators = new string[] {"][", "[", "]"};
string[] s = composition.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);

Если вы хотите соответствовать точному шаблону:

Regex r = new Regex(@"^(\[[^\[\]]+\]){2}$");

Редактировать - ответить с выделенным синтаксисом кодом комментатору: Для разбора строки Regex с использованием групп вы можете использовать:

foreach (Match match in Regex.Matches(composition, @"\[([^\[\]]+)\]"))
  Console.WriteLine(match.Groups[1].Value);
0 голосов
/ 22 июля 2010

Выйдите из [и] с помощью '\'.

, т. Е. "\[[A-Za-z]*\]\[[A-Za-z]*\]"

http://gskinner.com/RegExr/ Этот сайт отлично подходит для игры с регулярными выражениями.1009 * Веселись!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...