Regex, чтобы найти комментарий в исходном файле c # - PullRequest
1 голос
/ 21 марта 2011

Я не могу заставить свое регулярное выражение совпадать с заголовком файла кода c #. Я в основном хочу вернуть заголовок, если он существует.

Пример:

#define debug
//****************************************************************************************************
//  <copyright file="" company="">
//      Copyright (c) . All rights reserved.
//  </copyright>
//  <project>Engine</project>
//****************************************************************************************************

code here

//some other comment here

more code here

//another comment here

Мое регулярное выражение выглядит так:

(?:/\\*(?:[^*]|(?:\\*\+[^*/]))*\\*\+/)|(?://.*)

но соответствует только этой строке: // *************** *******************************************

а не остальная часть комментария.

Комментарии также могут заканчиваться следующим образом "*/".

что не так с моим регулярным выражением? почему не ловит целый блок?

Ответы [ 4 ]

1 голос
/ 21 марта 2011

Нужна многострочная

(^\/\/.*?$|\/\*.*?\*\/)
1 голос
/ 21 марта 2011

Попробуйте это - и вы можете вытащить весь комментарий (с "//" или группой внутри, чтобы получить только текст. Это вернет совпадение для каждой строки. Пожалуйста, используйте опцию "Multiline", чтобы запустить это:

^/[/|*](.+)$
0 голосов
/ 29 июня 2016

Использование шаблона регулярного выражения: (/ * ([^ ] | [\ r \ n] | (* + ([^ /] | [\ r \ n]))) * + /) | (//.)

подробнее https://code.msdn.microsoft.com/How-to-find-code-comments-9d1f7a29/

0 голосов
/ 21 марта 2011

Полагаю, вы хотите извлечь псевдо-XML-код, чтобы сработало следующее выражение.Обратите внимание, что вам все равно придется удалить начальный «//» в каждой строке.

//\*+\n((?://.*\n)+)//\*+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...