모르겠다.하지만 매우 복잡한 정규 표현식을 사용하면 컴퓨터가 크게 느려질 것인가? 예를 들어 최근에 제안 된 유명한 이메일 검증 모듈을 좋아합니까? 이는 여기 RFC822regex 비교는 많은 리소스를 소비합니까?
업데이 트를 찾을 수 있습니다보기 같은 기능 : 나는 서둘러이 질문을했다 미안 어쨌든 난 이메일 정규식에 대한 링크 내가 말하고에 대한
모르겠다.하지만 매우 복잡한 정규 표현식을 사용하면 컴퓨터가 크게 느려질 것인가? 예를 들어 최근에 제안 된 유명한 이메일 검증 모듈을 좋아합니까? 이는 여기 RFC822regex 비교는 많은 리소스를 소비합니까?
업데이 트를 찾을 수 있습니다보기 같은 기능 : 나는 서둘러이 질문을했다 미안 어쨌든 난 이메일 정규식에 대한 링크 내가 말하고에 대한
그것은 매우 개인 정규식에 따라 게시 대부분의 경우 단순한 정규 표현식이 적합하지만, 뒤에서 또는 미리보기는 매우 비쌉니다.
자습서 http://www.regular-expressions.info/에 대한 자습서가 제공되므로 좋은 시작이 될 수 있습니다.
많은 텍스트 (큰 코드베이스,> 300k 라인)를 분석하는 프로그램을 만들었습니다. 먼저 정규 표현식을 사용했지만 정규 표현식 함수를 사용하기로 전환했을 때 정규 표현식 버전의 40 %를 차지하는 것과 같이 훨씬 빨랐습니다. 물론 그것이 달려있는 동안 내 일은 훨씬 빨라졌습니다.
예전에 내가 실수로 - 우연히 :-) - 멀티 라인 정규 표현식을 작성하고 10 * 200GB의 텍스트 파일을 검색/대체했습니다. 그게 천천히 ... 그래서 당신이 쓰는 것과 당신이 확인하는 것에 달려 있습니다.
표현식의 복잡도와 표현식과 함께 사용되는 언어에 따라 다릅니다.
JavaScript에서; 모든 것을 최적화해야합니다. C#에서; 별로.
JS RegExp가 수행하는 것보다 훨씬 우수한 성능을 제공합니다. – eyelidlessness
쿼리를 최적화하고 regex의 내부 작업을 얼마나 잘 알고 있는지에 따라 달라집니다.
예를 들어 음수 문자 클래스를 사용하면/<. +?> /) (*) 대신에/< [^>] +> /가 엔진을 되돌려 보내는 데 드는 비용을 절약 할 수 있습니다. 일치하지만 텍스트의 큰 덩어리 안에서 일치해야하는 경우 많은주기가 절약됩니다.
그리고 정규 표현식 연산에서 자원을 절약하는 다른 많은 방법이 있으므로 성능이 크게 달라질 수 있습니다.
정규 표현식에 찍은. 다른 언어와 같은 언어의 서로 다른 버전은 다른 유형의 정규식을 가질 수 있습니다. 자연스럽게, 일부 정규 표현식은 더 빠르게 작동하고 일부는 다른 표현식에서 더 빠르게 작동합니다. 정말 중요한 경우, 어떤 유형의 정규식 FSM이 구현되어 있는지 찾을 수 있습니다.
저는 전문가가 아닙니다. Jeffrey E. F. Friedl이 읽고있는이 모든 것은 Mastering Regular Expressions입니다. 그걸 보길 원할 겁니다.
regexp 엔진에 따라 다릅니다. 설명한대로 here (Regular Expression Matching Can Be Simple And Fast) 구현에 따라 성능에 몇 가지 중요한 차이가있을 수 있습니다.
Regular Expression Matching Can Be Simple And Fast 또는 Understanding Regular Expressions과 같은 기사로 관심을 가질 수 있습니다.
비효율적 인 RE를 작성하는 것은 쉽지만 성공시 매우 빠르게 일치 할 수 있지만 일치하지 않으면 몇 시간 동안 볼 수 있습니다. 긴 문자열의 모든 위치에서 엔진이 어색하게 시도하기 때문입니다!
,이에 대한 몇 가지 요리법이있다 등 거대 전자 메일 발현 최근하지, 반드시 감속 아니라고
참고 가능 때마다, 고정 탐욕 가능하면 피 같은 : 짧은 , 간단한 표현은 더 복잡 한 것보다 느릴 수 있습니다!
전자 메일과 같은 상황에서는 @에서 분할하여 다른 경우를 처리하는 것과 같이 정규 표현식과 코드를 혼합하여 사용하는 것이 더 효율적 (유지 관리 가능) 할 수 있습니다 첫 번째 부분은 시작 "여부, 두 번째 부분은
정규 표현식에 모든 것을 할 수 궁극적 인 도구 아니다. IP 주소 또는 도메인 등)이지만, 주인에게 가치가 매우 유용한 도구입니다!
일반적으로 코드에 대해 말할 수있는 것 이상으로 정규 표현식에 관해서는 말할 수 없습니다.
정규식은 거의 프로그램이 아닙니다. 자신의 것. 주어진 프로그램이 빠르거나 느릴 수있는 것처럼, 주어진 정규 표현식은 빠르거나 느릴 수 있습니다.
그러나 기억해야 할 것은 정규식 처리기가 작업을 수행하고 정규식을 빠르게 실행하는 데 매우 최적화되어 있다는 것입니다.
어 오. 누군가 다른 정규식 이메일 검사기를 작성하려고 했습니까? 링크가있을 수 있습니까? –