Как сопоставить скобки с помощью регулярного выражения? - PullRequest
2 голосов
/ 23 марта 2011

Я использую библиотеки повышения для анализа файла.Известно, что когда вы используете круглые скобки, это обозначает подвыражение в регулярном выражении.Как бы я объявил регулярное выражение, если мой файл содержит круглые скобки?Я попытался использовать \( безуспешно.Может кто-нибудь сказать мне, как я должен объявить регулярное выражение для следующего формата файла?

a:(1)
b:(2)

Я могу выполнить анализ, когда содержимое файла

a:1
b:2

объявив регулярное выражение как boost::regex e("([a-z]):([0-9])"); Можете ли вы сказать мне, как я могу также сопоставить, если значения в скобках?

1 Ответ

15 голосов
/ 23 марта 2011

Если вы хотите использовать скобки, вам нужно экранировать их обратной косой чертой.Проблема в том, что вам также нужно избегать этой обратной косой черты (для компилятора C ++).Пример:

std::string regexstring = "\\([a-z]\\):\\([0-9]\\)"; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...