2016-08-04 3 views
-2

C 프로그래밍 초보자입니다. 내장 된 함수처럼 C 문자열 내부의 패턴을 일치시킬 수 있습니까?C 프로그램에서 패턴 매칭을 사용할 수 있습니까?

Red Hat Linux를 사용 중이고 문자열이 abc: 또는 def:으로 시작하고 10 자리 숫자 뒤에 @ 문자가 오는 지 확인하고 싶습니다. 다음과 같음 : (abc|def):([0-9]{10})@([A-Za-z0-9]*).

이 패턴 일치를 확인하는 데 사용할 수있는 C 내장 함수가 있습니까?

도움 주셔서 감사합니다.

답변

1

Linux에서 POSIX regex matching을 사용할 수 있습니다. 자세한 내용은 man 3 regex를 참조하십시오. 빠르고 안전하며 스레드 라이브러리를 찾고 있다면 pre-compiled regex와 같은 지원을 통해 Google의 re2 라이브러리를 사용할 수 있습니다. (https://github.com/google/re2)

0

리눅스 및 POSIX에는 regex(3) 기능이 있습니다. regcomp을 먼저 사용하여 정규식 문자열을 변환하여 준비하는 "컴파일"이 필요합니다.

몇 가지 간단한 경우에, 당신은 또한 같은 다른 문자열 함수를 사용할 수 있습니다 strstr, strchr, sscanf(3)합니다 ( %n 형식 지정자가 편리 할 수는 스캔 얼마나 많은 바이트 알고).

lexing 유틸리티를 사용해보십시오. 아마도 flex을 사용하여 정규 표현식을 인식 할 수있는 토크 나이저를 생성 할 수 있습니다.

관련 문제