나는 문자열의 시작을 검사하는 정규 표현식을 설정하기 위해 노력하고있어, 그것이 하나가 포함 된 경우 http://
또는 https://
그것과 일치해야합니다.
어떻게해야합니까? 작동하지 않는 다음을 시도하고 있습니다.
^[(http)(https)]://
5
문자열의 시작 부분 만 확인하는 경우 문자열의 처음 몇 문자를 원하는 패턴과 직접 비교하는 것이 더 빠를 것입니다.
—
templatetypedef
로 캐릭터 그룹 을 생성하고
—
Felix Kling
[]
있습니다. 그것은 마하 것 하나 하나 개입니다 문자 (
, )
, h
, t
, t
, p
또는 s
. 즉 그것은 일치하는 것이 s://
아니라 ht://
나 x://
.
@ templatetypedef : 나는 조기 최적화를 느낀다고 생각합니다.
—
cdhowie
많은 현대 정규식 라이브러리는 매우 빠릅니다 . 이상 - - (많이) 백 추적이되지 않는 한, 정규 표현식은 호의적으로 비교할 수있다 스타일 접근 "지수의"(비교에
/^x/
대 indexOf(x) == 0
). "로 시작이"스타일이 적은 오버 헤드있을 수 있습니다 접근,하지만 난 그게 거의 중요하지 않습니다 생각 - 잘 할 수있는, 가장 깨끗한 무엇인지 선택합니다 x.StartWith("http://") || x.StartsWith("https://")
-하지만 코드 선명도에서 그렇게하지 시도가 정당화하지 않는 성능을 향상시키기 위해 분석 및 요구 사항 :-)