2012-05-02 6 views
0

Я пытаюсь использовать регулярное выражение в c/C++ с помощью regex.h. Я пытаюсь использовать опции LOOKAHEAD, например:Поддерживает ли регулярное выражение регулярное выражение?

(?=>#).* 

для того, чтобы извлечь строки после «#»

По какой-то причине не удается найти какие-либо матчи. Поддерживает ли regex.h lookahead/lookbehind? есть ли другая библиотека, которую я могу использовать?

Я использую regex.h, on linux.

+2

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

+2

Зачем использовать это в первую очередь? Я думаю, что использование такой группы, как '# (. *)', Было бы более распространенным способом сделать это. – FatalError

ответ

1

Я уверен, что NSRegularExpression - это всего лишь обертка для libicu, которая поддерживает lookaheads. У вас есть опечатка в вашем примере, правильный синтаксис - (?=#).* по ссылке.

В данном случае это действительно не нужно, но почему бы не просто #.*?

1

Я подозреваю, что это правда, о чём вы говорите, а не в поиске. Это будет (?<=#).*, но почему это так сложно? Почему бы просто не использовать #(.*), как предложили некоторые другие респонденты, и вытащить нужный текст из группы захвата?

Кроме того, вы действительно используете NSRegularExpression? Это кажется маловероятным, учитывая, что это класс Objective-C в среде разработки Apple iOS/MacOS.

+0

Исходный вопрос, упомянутый 'NSRegularExpression'; OP позже отредактировал его. –

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