2012-05-02 5 views
0

regex.h를 사용하여 c/C++에서 정규 표현식을 사용하려고합니다. 나는 예를 들어 내다 옵션을 사용하려고 :C 정규 표현식이 미리보기를 지원합니까?

(?=>#).* 

는 어떤 상대를 만나 실패하는 몇 가지 이유를 들어 '#'

후 문자열을 추출하기 위해. regex.h는 lookahead/lookbehind를 지원합니까? 내가 사용할 수있는 또 다른 도서관이 있습니까?

저는 리눅스에서 regex.h를 사용하고 있습니다.

+2

C 나 C++ 중 어느 것도 정규 표현식을 기본적으로 지원하지 않는다고 생각하면 사용중인 라이브러리를 알려 주어야합니다 (그렇게 할 때 먼저 해당 라이브러리의 문서를 살펴보십시오). –

+2

처음에이 부분에 대해 미리보기를 사용해야하는 이유는 무엇입니까? 제 생각에는'# (. *) '와 같은 그룹을 사용하는 것이 더 일반적인 방법이라고 생각합니다. – FatalError

답변

1

NSRegularExpression은 lookaheads를 지원하는 libicu의 래퍼 일뿐입니다. 당신의 예문에 오타가 있습니다, 오른쪽 문법은 링크에 따라 (?=#).*입니다.

실제로이 경우에는 필요하지 않은 것 같습니다. 왜 #.*이 아닌가요?

1

나는 그것이 당신이 말하고있는 것 같아 보이지 않습니다. 그게 (?<=#).*이 될 것이지만 왜 그렇게 복잡하게 만드나요? 일부 응답자가 제안한대로 #(.*)을 사용하지 않고 캡처 그룹에서 원하는 텍스트를 가져 오지 않는 이유는 무엇입니까?

또한 NSRegularExpression을 실제로 사용하고 있습니까? Apple의 iOS/MacOS 개발자 프레임 워크의 Objective-C 클래스를 고려할 때 그럴 것 같지 않습니다.

+0

원래 질문은 'NSRegularExpression'을 언급했습니다. OP는 나중에 그것을 편집했다. –

관련 문제