Справка .NET RegEx - PullRequest
       3

Справка .NET RegEx

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

Я очень неопытен, когда дело доходит до регулярных выражений. То, что я пытаюсь сделать, это перебрать список строк и попытаться найти строки, которые имеют определенный шаблон. Интересующие меня строки будут иметь вид "some text ***{some text}***" Как мне написать RegEx, чтобы соответствовать до? Я пытался это:

Regex expression = new Regex("***");

но это дает мне ошибку. parsing "***" - Quantifier {x,y} following nothing.

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

Я пытаюсь перебрать опции списка выбора и добавить класс css к соответствующим параметрам.

Regex expression = new Regex("***");
foreach (ListItem li in listItemCollection)
{
    if (expression.IsMatch(li.Value))
        li.Attributes.Add("class", "highlight1");
}

но это, очевидно, не работает.

Любая помощь приветствуется, ~ ck в Сан-Диего

Ответы [ 6 ]

9 голосов
/ 22 июля 2009

Вам нужно экранировать звездочку, поскольку в RegExp это действительный метасимвол.

Regex expression = new Regex(@"\*\*\*");
3 голосов
/ 22 июля 2009

Если все, что вы пытаетесь сделать, это сопоставить три звездочки, то почему бы просто не использовать string.Contains метод вместо регулярного выражения?

foreach (ListItem li in listItemCollection)
{
    if (li.Value.Contains("***"))
        li.Attributes.Add("class", "highlight1");
}
3 голосов
/ 22 июля 2009

* имеет особое значение в регулярном выражении.

Если вы ищете подходящие 3 звездочки, попробуйте

Regex expression = new Regex(@"\*\*\*");

EDIT:

Если вы пытаетесь проверить, содержит ли строка «***», посмотрите bdukes 'ответ .

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

Попробуйте что-то вроде этого:

\*\*\*[^\*]+\*\*\*
0 голосов
/ 22 июля 2009

Вы должны попробовать этот шаблон регулярных выражений

\*{3}\{[^\}]*}\*{3}

Это найдет ***{some text}***

Если вы хотите текст перед *, вы должны использовать этот

^[\w\s]*\*{3}\{[^\}]*\}\*{3}
  • ^ - начало ввода
  • [\w\s]* любой символ в a-z, A-Z, 0-9, _ и пробел, 0 или более раз
  • \*{3} три звездочки
  • \{ совпадение {
  • [^\}]* любой символ кроме } 0 и более раз
  • \} совпадение }
  • \*{3} соответствует трем звездочкам
0 голосов
/ 22 июля 2009

Если вы собираетесь тестировать регулярные выражения, получите приложение для тестирования. Любой из этих будет хорошим началом. Я давно подключен к тестеру Криса Селлса , но есть много всего.

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