javascript regexp에 문제가 있습니다. 이 내 정규식 :Java regexp javascript 정규식 문제
(([\+\-\/\*\^]?)([(]*(([(]?((([+-]?\d+([.,]?(\d+)?)?)|(Q[0-9]+)?)([e][+-]\d+)?)[)]?)|([(]?value[)]?))[)]*)?(([(]*([(]?((([+-]?\d+([.,]?(\d+)?)?)|(Q[0-9]+)?)([e][+-]\d+)?)[)]?)|([(]?value[)]?)[)]*))?([\+\-\/\*\^])([(]*(([(]?((([+-]?\d+([.,]?(\d+)?)?)|(Q[0-9]+)?)([e][+-]\d+)?)[)]?)|([(]?value[)]?))[)]*))+
이 정규 표현식 테스트 텍스트를 예를 들어 matematical 공식 (18*19)/2
경우, 나는 예를 들어, 변수처럼 QXX
을 추가 할 수 있습니다 Q18/42+7*Q7
이 정규 표현식 작업을 완벽에 자바 (나는 그것을 http://fiddle.re/dnbh6에서 테스트했습니다). 당신은 어떤 생각이 있다면
var reg =/(([\+\-\/\*\^]?)([(]*(([(]?((([+-]?\d+([.,]?(\d+)?)?)|(Q[0-9]+)?)([e][+-]\d+)?)[)]?)|([(]?value[)]?))[)]*)?(([(]*([(]?((([+-]?\d+([.,]?(\d+)?)?)|(Q[0-9]+)?)([e][+-]\d+)?)[)]?)|([(]?value[)]?)[)]*))?([\+\-\/\*\^])([(]*(([(]?((([+-]?\d+([.,]?(\d+)?)?)|(Q[0-9]+)?)([e][+-]\d+)?)[)]?)|([(]?value[)]?))[)]*))+/g;
reg.test("Q18+aaaa)//return true, but in java this is resturn false
var reg= new RegExp("(([\+\-\/\*\^]?)([(]*(([(]?((([+-]?\d+([.,]?(\d+)?)?)|(Q[0-9]+)?)([e][+-]\d+)?)[)]?)|([(]?value[)]?))[)]*)?(([(]*([(]?((([+-]?\d+([.,]?(\d+)?)?)|(Q[0-9]+)?)([e][+-]\d+)?)[)]?)|([(]?value[)]?)[)]*))?([\+\-\/\*\^])([(]*(([(]?((([+-]?\d+([.,]?(\d+)?)?)|(Q[0-9]+)?)([e][+-]\d+)?)[)]?)|([(]?value[)]?))[)]*))+", "g");
reg.test("Q18+aaaa)//return true, but in java this is resturn false
그래서, 내가 그것을 시도 할 것이다 : 나는 자바 스크립트로 변환하려고 할 때 그러나, 그것은이 내가 시도하는 모든 솔루션입니다 ... 작업을 나던.
http://regexpal.com/은 계속 –
정규식 표현을 테스트 할 수있는 좋은 도구입니다 "((? ...))?"은 모든 괄호가 쌍을 이루고, 닫히지 않고 열 수 있다는 것을 보장하지는 않는다. PCRE의'(? R)'동등 물, [관련 SO 질문] (http://stackoverflow.com/questions/4414339/recursive-matching-with-regular-expressions-in-javascript) –
난 당신이 프로그램에서 하나의 긴 문자열이 아닌 정규식을 생성 희망. 나는 그것을 절반으로 분석하고 포기하지만 너무 많은 c를 사용하고있는 것으로 보인다. apturing 그룹. – nhahtdh