흥미로운 점이 있습니다. 누구나 모든 (첫 번째)^(초)를 Math.pow ((첫 번째), (두 번째))로 변환하는 우수한 정규 표현식을 갖고 있습니까?RegEx 대신 pow (a, b)를 사용합니다.
편집 :
내가 가진 가장 지금까지 답변 지금까지 충분히 일반적으로하지 않습니다
s = s.replace(/((?:\d+\.?\d*)|\w+|\((?:(?:[^\(\)]*(?:\([^\(\)]*\)))*)\))\s*\^\s*((?:\d+\.?\d*)|\w+|\((?:(?:[^\(\)]*(?:\([^\(\)]*\)))*)\))/g, 'Math.pow($1, $2)') // replace expression^expression with Math.pow($1, $2)
입니다. 그들은 (var1 + var2)^2와 같은 것을 다루지 않습니다. (var1 * (var2 + var3))^2
솔루션은 괄호로 작업해야합니다.
strfriend.com을 사용하면 정규식을 시각화 할 수 있습니다. 그게 내가 한 일이야.
그리고 현재 가장 가까운 것은 ...? – Oswald
'a * b^c'는 무엇으로 변환되어야합니까? 'a^b + c'? 'a^b^c'? –
일반 정규식으로는이 작업을 수행 할 수 없습니다. 임의의 재귀가 필요합니다. 너가 현상금을 올릴 것을 제안하면 나는 이것이 공정하게 관련된 문제이다. – kelloti