2012-07-06 2 views
2

이전 시스템에서이 정규 표현식을 발견했습니다. 끝이 중복하지만 난 그것을 제거하기 전에 아무것도하지 않는 있는지 확인하려면에서정규식 중첩 별표

(\s*)* 

나는 "*"여분의 확신 해요. 매개 변수로 사용 된 문자열에 공백이 25 개 이상있는 경우 전체 시스템을 정지시키는 지점에 regex.matches() 메서드를 사용하면 성능 문제가 발생합니다.

특정 구문에 특수 문자가 있는지 기능성?

Ps : 꽤 거대한 시스템이므로 모든 가능한 시나리오를 테스트 할 수 없습니다.

+0

어떤 언어입니까? –

답변

1

내부가 *이라고 가정하면 욕심이 많습니다. 바깥 쪽 *은 하위 일치를 반복하려고 시도하지만 욕심 때문에 하위 일치의 인스턴스가 하나만 있습니다.

1

중복입니다. 여러 개의 일치 항목을 사용하여 0 개 이상의 공백 그룹을 캡처 할 수 있습니다. 추가 별표가 지정하는 것입니다.