문자열을 토큰 화해야합니다. s는 영숫자, 닫혀 있고 여는 괄호 및 하이픈을 가질 수 있습니다. 알 수없는 문자가있는 경우 토크 나이저는 오류를 내뿜을 필요가 있습니다. 각 요소는 예를 토큰 화한다여러 regex 패턴을 사용하여 문자열 토큰 화하는 방법
문자열 aa (b - d)
토큰 1 ->aa
(영문자)
2->(
(괄호 열기)
3->b
(영문자)
4->-
(하이픈)
5>d
(영숫자)
6>)
(폐쇄 괄호) 또한
하는 하이픈 및 문자 및 숫자 만 가질 수있는 조건 (,) 또는 공간의 주위에 (줄 바꿈 등 탭)가 그것.
그래서 aa(d-b)
은 오류를 발생시킵니다.
내 프로세스가 여기 (위 관련된) 여러 패턴을 컴파일하고 자신의 코드 (즉, 숫자, 하이픈, closedparen, openparen) 모든 문자열에 대한 다음
와 함께 보관하는 것이 었습니다, 나는 목록을 이동 패턴 (각각 ^에 추가됨)을 사용하여 일치 시키려고합니다. 일치하는 항목을 찾으면 문자열에서 토큰을 제거하고 문자열이 비어있을 때까지 다시 시작합니다.
(및)는 토큰이며 발견 된 후 문자열에서 제거되므로 이전 요소가 올바른 후속 영숫자 또는 하이픈을 확인하려면 어떻게해야합니까? 나는 이것을하기위한 몇 가지 복잡한 방법이 있다는 것을 안다. (이전의 경기 등을 저장한다.) 더 간단한 방법이 있는지 궁금해하고 있었다.
당신이 이미 시도한 것을 보여주십시오. – Nikola