정규식을 사용하여 Java로 프로그램을 작성 중이며 오류가 발생했습니다. 내가 뭘 하려는지는 기본적으로 프로그래밍 언어를 만들고 라인별로 구문을 분석합니다. 내가 잘못 가고있는 곳은 어떤 문자열을 찾으려고 할 때입니다. 문제는 식별자, 문자열, 정수 순으로 식별자를 가져야한다는 것입니다. 그러나 식별자에서 문자열을 찾을 수는 있습니다. 문자열은 주위에 큰 따옴표를 사용하여 정의됩니다. 이 링크로 이동하지 않으려는 경우, 여기 here, 또는 :이 사방에 있기 때문에정규식이 Java의 따옴표 대신 무작위로 일치합니다.
[^"]([^\W][a-zA-Z0-9]+)[^"]
내가, 내 자바 코드를 표시 할 수 없습니다, 여기에 내가 테스트를 어디, 내 표현 내가 프로그래밍 한 방식대로. 그것은 단지 표현 일뿐입니다.
당신이 프로그래밍 언어를 만든다면, 당신이 그것을 구문 분석 정규식을 사용하지 않으려는 : 여기
은"
로 둘러싸인 텍스트와 일치하는Pattern
이다. – explv이 정규식이 무엇을 찾을 지 모르겠습니다. 분명히 해줄 수 있니, 제발? –
프로그래밍 언어를 작성하는 데 도움이되는 도구를 살펴 보길 권합니다. Antlr이 있습니다. 파서를 생성하여 코드 생성 및 의미 분석에 집중할 수 있습니다. [편집자 지원과 함께] 완전한 컴파일러를 생성하는 대신 [Xtext] (https://eclipse.org/Xtext/)가 있습니다.) 나는 그들 중 어느 것도 시도하지 않았다는 것을 말해야합니다. – niceman