2015-09-04 4 views
1

Я борюсь с регулярным выражением. Я не могу найти способ извлечь наиболее вложенный комментарий в этом примере:Как я могу сопоставить самый вложенный комментарий с регулярным выражением?

/* test 
/* sec/*o* 
new line 
n*/d */ 
*/ 

Чтобы быть ясно, что я хочу, чтобы извлечь следующий:

/*o* 
new line 
n*/ 

До сих пор я могу выберите его, только если он не имеет * характер, используя это регулярное выражение:

/\*[^\*]*\*/ 

Но я не могу понять, как исключить эту конкретную строку: /*, и я не могу найти правильные ключевые слова, чтобы получить ответ в Интернете.

+1

Я голосую, чтобы закрыть это вопрос как вне темы, потому что это вопрос с регулярным выражением, но обязательное упоминание инструмента/языка отсутствует –

+0

Вы хотите просто совместить вложенные комментарии на первом уровне? Пожалуйста, укажите язык программирования. –

+1

@ DenysSéguret Это не очень хорошая причина, это повод опубликовать комментарий, требующий более подробной информации. – Barmar

ответ

5

Вы можете сопрягать любые вложенные комментарии последнего уровня (те, которые не имеют каких-либо более вложенные комментарии) с помощью tempered greedy token:

/\*(?:(?!/\*|\*/)[\s\S])*\*/ 

См demo

Смежные вопросы