Справка по регулярным выражениям C #, как сопоставить этот шаблон

#regex

#регулярное выражение

Вопрос:

У меня есть строка, что-то вроде «[aaa] [vad] [adf]», я хотел бы использовать регулярное выражение для записи данных в[], а символы в [] могут быть символом и числом и не иметь ограничения по длине. Я новичок в регулярных выражениях, кто-нибудь может мне помочь в этом? Спасибо.

Комментарии:

1. Я рекомендую вам взглянуть на шпаргалку по регулярным выражениям, чтобы получить основную идею ( bit.ly/rQ7m9b ). Предпочтительно, чтобы вы могли задать свой вопрос с помощью выражений, которые вы пробовали, но не смогли заставить работать.

Ответ №1:

Вы можете попробовать что-то вроде этого:

 var data = "[asd][dfhg][asfsa243]";

var re = new Regex(@"[([^]]*)]");

var matches = re.Matches(data);

for (int i = 0; i < matches.Count; i   )
{
    var m = matches[i];
    Console.WriteLine(m.Groups[1]);
}

Console.ReadLine();
  

Это выводит:

 asd
dfhg
asfsa243
  

Регулярное выражение [([^]]*)] соответствует нулю или более вхождений символа, который не является ] символом и который находится между парой квадратных скобок ( [ и ] )

Ответ №2:

Это регулярное выражение может сработать для вас:

 [(w )]
  

Это, если вы char ссылаетесь на word character

Ответ №3:

Вот мое предложение:

 [(w )]
  

Символ будет предоставлен в первой группе соответствия, вот так:

 var regex = new Regex(@"[([wd]*)]");
MatchCollection matchCollection = regex.Matches(stringToTest);
foreach (Match match in matchCollection)
{
    Debug.Print(match.Groups[0].Value);
}
  

Ответ №4:

Вот несколько хороших ресурсов для построения регулярных выражений http://www.regexlib.com http://regexpal.com/

Вот регулярное выражение для буквенно-цифрового:

  ^[a-zA-Z0-9] $
  

Вот как убедиться, что существует 3:

  /^([a-zA-Z0-9]){3}$/
  

Ответ №5:

Вы могли бы попробовать —

 [^[]W] 

var matches = System.Text.RegularExpressions.Regex.Matches("[aaa][vad][adf]",@"[^[]W] ").Cast<Match>().Select(m => m.Value);
  

Это должно игнорировать любые символы ‘[‘, ‘]’ и не-word и возвращать ‘aaa’, ‘vad’ и ‘adf’ из строки вашего примера.

Комментарии:

1. Есть ли причина для снижения? Похоже, у меня работает приведенный пример.