Regex для соответствия всем ключевым словам scala в файле - PullRequest
1 голос
/ 22 января 2012

Можно ли построить регулярное выражение для соответствия всем ключевым словам в исходном файле scala?

Лучшее, с чем я пришел:

"""(?<![\w`])(%s)(?![\w\_])""" format keyword

Это достаточно хорошо, или я что-то пропустил?

1 Ответ

4 голосов
/ 22 января 2012

Очевидное решение - создать регулярное выражение для сопоставления всех ключевых слов, и вы можете сделать это, просто создав большое ИЛИ ключевых слов (if|else|...).Однако вам нужно исключить строки, комментарии и любой текст, который может содержать свободные ключевые слова, которые не являются ключевыми словами.

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

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

например, как вы будете обрабатывать типичные комментарии в стиле C, оканчивающиеся новой строкой?

В конечном счете, вам нужен токенизатор для Scala, и вы, вероятно, найдете его в дистрибутиве Scala.

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