Javascript Regex - захватывать все, кроме комментариев в стиле C - PullRequest
0 голосов
/ 09 февраля 2010

Проблема: я пытаюсь стилизовать определенные ключевые слова (например, «функция») внутри содержимого кодового тега, исключая эти ключевые слова из комментариев в стиле C, которые появляются в этом контенте. Решение: я полагаю, что соответствие внутреннейHTML-строки кодового тега с шаблоном Regex, которое исключило бы комментарии в стиле C, могло бы сработать ...

Есть предложения?

1 Ответ

1 голос
/ 09 февраля 2010

Комментарии в стиле C могут быть вложенными и поэтому не подходят для регулярного выражения.

Совпадение с неотнесенным комментарием в стиле C просто:

/\*.*?\*/

Разрешение на один уровень вложенности приводит к:

/\*(?:(?!\*/|/\*).)*+(?:/\*(?:(?!\*/|/\*).)*+\*/(?:(?!\*/|/\*).)*+)*+.*?\*/

(взято из библиотеки RegexBuddy ). Попробуйте представить, что произойдет, если вы позволите больше.

Я понимаю ваш вопрос как "Возможно ли, чтобы регулярное выражение совпадало с блоком текста, который находится вне комментариев в стиле C?" - это было бы еще сложнее, чем это. Представьте себе строку вроде "This is used to start a C comment: /*". Кроме того, если вы все еще хотите попробовать это, вам нужно посмотреть, что JavaScript не поддерживает.

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