2014-02-24 4 views
0

제 질문은 this question과 매우 유사하며 대답은 거의 괜찮습니다. 문자 대 문자뿐만 아니라 문자까지의 두 번째 문자 발생에 대한 정규식이 필요합니다. 내 목적은 예를 들어, URI에서 암호를 얻을 수 있습니다 :다른 문자의 두 번째 나타나는 문자까지 정규 표현식 일치

http://mylogin:[email protected] 

그래서 사실 내가 두 번째에서 공간이 필요 ":" "@"까지.

(?<=:)[^:]+?([email protected])

그것은 @하여 : 접두사와 접미사 어떤 : 문자를 포함하지 않는 어떤 연속 문자열과 일치 :

답변

3

는 다음과 같은 정규식 갈 줄 수 있습니다.

정규식의 당신의 취향에 따라 좋아하는 뭔가해야 할 수 있습니다 lookarounds를 사용하지 않는

:([^:]+?)@

는이 경기에서 :@을 포함,하지만 암호는 처음에있을 것입니다 캡처 그룹.

?은 실제 URL 문자열에 @자를 사용해야하는 경우에 게으르며, 선택 사항입니다. 이 경우 과 사이의 모든 문자와 줄 바꿈 등이 일치합니다.

+0

난 내 프로젝트에 솔루션을 사용하고 지금까지 작동합니다 : D – Leo

0

여기 보면 이것은 미리 또는 볼 비하인드 필요없는 쉬운 하나 :

.*:.*:([^@]+)@ 

설명 :

  • .*:.*이 : 모든 일치하는 두 번째 콜론 (포함)까지 (:)
  • ([^@]+)은 가능한 가장 긴 시리즈 인 @ 문자와 일치합니다.
  • @ - @ 문자와 일치합니다.

이 정규식을 실행하면 첫 번째 캡처 그룹 (괄호 사이의 표현식)에 비밀번호가 포함됩니다. 여기

는 행동에 : http://regex101.com/r/fT6rI0