У меня есть следующий код регулярного выражения:
Код: Выделить всё
pattern = @"(?";
code = Regex.Replace(code, pattern, replacement);
Я поигрался с ним и изменил шаблон:
Код: Выделить всё
pattern = @"(?])";
Таким образом, этот шаблон не будет соответствовать «//foreach», но будет соответствовать «// foreach».
Можно ли в этом случае использовать отрицательный просмотр назад, или я могу сделать это каким-либо другим кстати, помимо негативного взгляда?
Спасибо.
РЕДАКТИРОВАТЬ:
Думаю, я недостаточно ясно выразился. Повторю свою проблему:
Я работаю над подсветкой синтаксиса, и мне нужно найти совпадения для ключевых слов C#, например «foreach». Однако мне также необходимо учитывать комментарии, которые определяются двумя косыми чертами. Я не хочу сопоставлять ключевое слово "foreach", если оно является частью комментария (2 косые черты в любом месте перед ним в той же строке.
Отрицательный просмотр не поможет мне в этом случае, потому что косые черты не обязательно будут прямо перед ключевым словом, например "// некоторый текст foreach" - я не хочу, чтобы этот foreach соответствовал.
И снова мой вопрос: как можно ли изменить мой шаблон так, чтобы он совпадал только в том случае, если перед ним в одной строке нет двух косых черт?
Надеюсь, теперь мой вопрос ясен.
Подробнее здесь: https://stackoverflow.com/questions/119 ... re-on-line
Мобильная версия