커스텀 커멘드를 사용해, 커스텀 알파 바이벳에 정규 표현을 매칭하고 싶습니다. 목적은 기상학에서 나타나는 방정식과 표현을 조사하는 것이다.커스텀 정규 표현 파서
예를 들어 내 alpabet은 [p, rho, u, v, w, x, y, z, g, f, phi, t, T, +, -, /]
일 수 있습니다. 참고 : ρ와 Φ는 한글자로 처리해야하는 여러 문자입니다.
변수에 대해 \v
과 같은 맞춤 명령을 사용하고 싶습니다 (즉, 연산 연산자가 아닌).
나는 점이 x
가 변수입니다 dx/dt
을 일치해야합니다 같은 주 (\v).
같은 다른 명령을 사용하고 싶습니다. 마찬가지로, p=p(x,y,z)
으로 주어진 경우 은 dp/dx
, dp/dy
및 dp/dz
과 일치하지만 dp/df
은 일치하지 않습니다. (어딘가에 p = p(x,y,z)
이 주어질 것입니다).
나는 또한 되돌릴 수 있기를 바랍니다.
이제 D와 함께 PCRE와 ragel을 조사했습니다. 처음 두 가지 문제가 해결 될 수 있다는 것을 알았습니다. 여러 문자 객체가 고정 된 객체로 정의되었습니다. 문자 클래스가 아닙니다.
어떻게 세 번째 주소를 지정합니까?
PCRE 또는 RAGEL이 사용자 지정 명령을 사용하는 방법을 허용하지 않습니다. 또한 backtrack을 사용하고 싶기 때문에 Ragel이 올바른 옵션인지 확신 할 수 없습니다.이 wouuld에는 스택이 필요하기 때문에 CFG를 사용하게 될 것입니다.
(즉 중요한 경우 리눅스 64 비트 용) 불가능 아무것도 없다
세 번째 문제는 무엇입니까? 당신이 원하는 것을 혼란스럽게합니다 ... 입력과 예상 결과를 게시 할 수 있습니까? – HamZa
세 번째 prblem : (\ v)와 같은 다른 명령을 사용하고 싶습니다. 점이 dx/dt와 일치해야합니다. 여기서 x는 변수입니다. 유사하게 p = p (x, y, z) 일 때 p '는 dp/dx, dp/dy 및 dp/dz와 일치하지만 dp/df는 일치하지 않는다. (어디 선가 p = p (x, y, z) .so string [] test = [ "dp/df", "dp/dx"]; char [] p_depends = [ 'x', 'y regexmatch (test, "p '", p_depends)는 "dp/dx"를 반환해야합니다. 두 번째 arg에 패턴이 – Sean