У нас есть какой-либо шаблон, соответствующий строке поиска? / - PullRequest
0 голосов
/ 30 января 2012

У меня следующий формат строки.

({'BTAddress': <'00:22:58:07:76:9B'>, 'Name': <'Some-Name'>, 'Alias': <'some-Name'>, 'Class': <uint32 12316>, 'Adapter': <objectpath '/org/bluez/3196/hci0'>},)

Я хотел бы проанализировать приведенную выше строку в C. Вместо того, чтобы выполнять необработанный анализ, есть ли какой-нибудь совет по использованию шаблонного анализа? Спасибо за помощь.

Ответы [ 4 ]

1 голос
/ 30 января 2012

Любой POSIX-совместимый компилятор C должен предоставлять <a href="http://linux.die.net/man/3/regex" rel="nofollow"><regex.h></a>, предоставляя вам регулярные выражения, которые могут помочь с этим.

1 голос
/ 30 января 2012

Вы можете использовать strtok: http://www.cplusplus.com/reference/clibrary/cstring/strtok/. Вам нужно будет выполнить ручную работу, чтобы все заработало, но работает нормально.

Примечание :char указатель, который вы передадите, будет изменен !!

0 голосов
/ 30 января 2012

Мои предложения следующие:

 A) try using strtok to split the text at ',' and then split the resulting subtexts only once at ':' ,that way you would get the key,value pairs you desire.
 B) use a regEx api under C that would basically solve your issue. 

Также я мог бы предложить поискать хранилище значений ключей под C для вашего проанализированного текста (у C ++ есть, но я действительно не знаю о C)

0 голосов
/ 30 января 2012

Вероятно, вам нужна библиотека регулярных выражений. Если вы используете библиотеку GNU C с регулярным выражением , библиотеку , для сопоставления с шаблоном . Для компиляторов Win32 вы можете использовать Regex для Windows порт кода GNU.

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