2010-04-05 5 views
1

= and !=과 같은 연산자에 따라 분할 할 문자열을 토큰 화해야합니다. 문자열이 != 연산자가 될 때까지 정규 표현식을 사용하여 성공했습니다. 내 경우에는 문자열이 두 부분으로 분리되어 있지만 예상 연산자는 주어진 연산자의 일부인 경우에도 왼쪽에 ! 표시가 있습니다. 따라서 정규식은 적합하지 않으며 lex의 혜택을 얻고 싶습니다. 필자는 렉스에 대한 충분한 지식과 경험이 없으므로 필자의 작업에 적합한 지 아닌지 잘 모릅니다. 기본적으로 연산자의 오른쪽을 다른 데이터의 실제 값으로 대체하려고합니다. 사람들이 내 사건에 도움이 될 것이라고 생각하니?문자열을 구별 할 때

감사합니다.

답변

1

렉스를 사용해야합니까? 그것은 당신의 언어가 얼마나 복잡한가에 달려 있습니다. 그것은 매우 가치있는 도구입니다. 이해할 가치가 있습니다 (특히 yacc 또는 Java에서는 antlr 또는 javacc을 사용할 수 있음).

public String[] split(String regex)은 문자열이 아닌 정규식을 사용합니다. 당신은 정규 표현식 "!? ="을 사용할 수 있습니다. 이는 0 또는 1을 의미합니다. ! 다음에 =이옵니다. 그러나 split을 사용할 때의 문제점은 실제 구분 기호가 무엇인지 알려주지 않는다는 것입니다.

응용 프로그램에 대한 정보가 거의 없으므로 정규식을 사용하고 싶습니다. 여기 stackoverflow 도움을 많이 전문가가 있습니다. 시작하기 좋은 곳은 Java regex tutorial입니다.

(내 실수 따기위한 Falle1234 덕분에 -. 지금 수정) "을!? ="

+1

이 정규식이어야 대신 "+ =!". ? 하나 또는 그 이상을 나타내는 +가 아닌 "0 또는 1"인디케이터입니다. – Falle1234

관련 문제