0
js 파일에서 모든 타입 캐스트를 제거하려고합니다. 내가 가진JS regex에서 타입 캐스트를 제거합니다.
현재 (하지-작업) 정규식은 다음과 같습니다
/(?!new\s+&?!function\s+)\w+\((.+)\)/gi
은 기본적으로 내가 클래스 같은 것을 (VAR)하지만 new Class(arg)
또는 function Func(arg)
감사합니다!
js 파일에서 모든 타입 캐스트를 제거하려고합니다. 내가 가진JS regex에서 타입 캐스트를 제거합니다.
현재 (하지-작업) 정규식은 다음과 같습니다
/(?!new\s+&?!function\s+)\w+\((.+)\)/gi
은 기본적으로 내가 클래스 같은 것을 (VAR)하지만 new Class(arg)
또는 function Func(arg)
감사합니다!
s = "Basically I want anything like Class(var) but not new Class(arg) or function Func(arg)"
re = /(?:(?!new|function)\b\S+|^|[^\w\s])\s*\b([A-Z]\w*\s*\(.*?\))/g
for (var match; (match = re.exec(s));) { alert(match[1]); }
는
Class(var)
을 생산하지만 실제 매개 변수 목록에 중첩 된 괄호가없는 경우에만 정확하게 일치합니다. 정규 문법은 중첩 괄호 그룹을 처리 할 수 없기 때문에 일반적으로 함수 호출을 정규 표현식을 사용하여 수행 할 수 없습니다.
나는 당신의 답이 내가 (사실 아주 똑똑한) 질문에 대답한다고 생각하기 때문에 이것을 주었다. 그러나 이것을 내 대본에 넣은 후에 내가 언급하지 않은 다른 것들을 바꾸기 시작했다. – Jacksonkr
@Jackson, 스크립트 구문 분석, 결과 구문 분석 트리로 이동, 수정 및 렌더링을 수행 할 수있는 적절한 JavaScript 파서를 살펴 보았습니까? http://stackoverflow.com/questions/6511556/javascript-parser-for-java에서 최근에이 문제에 대해 논의했으며, Java에 능숙하지 않다면 Python 및 다른 언어에 대한 SO에 대한 다른 토론이 있습니다. JSLint는 JS 파서를 기반으로 만들어 졌다고 생각한다. –