2016-11-09 1 views
0

JavaScript 프로젝트에서 모든 정규식을 최적화해야합니다. 간단한 검색으로 새로운 RegExp로 생성 된 모든 항목을 발견했습니다. 문제는 리터럴로 생성 된 것입니다 : /asd/.프로젝트에서 모든 정규식을 찾는 정규식

정규식 엔진이 Java가되도록 PhPStorm을 사용하고 있습니다. 그것은 우리가 뒤를 봐야한다는 것을 의미합니다. 그래서 내가이 함께했다 :

(?<=[\s=(,\[\?:;|)])\/[^*\n/][^\n/]*[^*]\/ 

이 나에게 /.../처럼 보이는하고 다음 중 하나가 선행되지 않는 모든 것을 제공 번역 : \s= (,[?:;|)합니다.

  1. regexp 앞에 다른 문자를 사용할 수 있습니까?
  2. 더 좋은 아이디어가 있습니까?

String 및 RegExp 클래스에서 사용하는 메서드를 검색하는 것은 허용되지 않습니다 (exec, replace ...). 일부 프로젝트에서 선언을 찾는 것은 매우 어렵고 많은 시간이 필요하기 때문에 허용되지 않습니다. 또한 동일한 regexp를 여러 번 사용할 수 있습니다.

+1

소스 코드를 regexps로 효율적으로 구문 분석 할 수는 없으며 특정 컨텍스트에서만 가능하다. 따라서, lookbehind는 거의 도움이되지 않습니다. ['/[^\\/]*(?:\\/[^\\/]*)*/'](https://regex101.com/r/tfzR0C/1)을 사용해보십시오. 그것으로 "overfiring"될 것입니다, 나는 두려워합니다. 예, 앞에 (?

+0

는 또한 표현, g 후 플래그를 가질 수 있습니다 자바 스크립트 정규식에주의 - 글로벌 난 - 대소 문자를 구별하지 m - 멀티 라인 Y - 당신은 정규 표현식을 사용하는 모든 방법을 검색 할 수 – Stefan

+2

끈적 검색 :'exec', 'test','match','search','replace'와'split' –

답변

0

내 regexp가 약간 벗어났습니다. 나는 이것을 결국 사용했다 :

(?<=[\s=(,\[\?:;|)])\/[^\n/].*?\/