정규식을 사용하여 도메인의 시작을 일치 시키려고하지만 도메인에 @
-symbol이 포함되어 있는지 확인합니다 .
따라서 :
[email protected]
나는 이후 위치를 일치시키고 싶다. @
hotmail.com
줄의 시작 부분에서 일치하고 싶습니다 내가 가진 것은 :
(?(?=[@])(?<=@)|^)
다른 조건이 이와 같이 작동하면 이해합니다.
(?(?=regex)then|else)
@
기호 를 긍정적으로 기대하십시오 .(?=[@])
@
기호 뒤에서 긍정적으로 살펴 봅니다 .(?<=@)
|
^
그러나 for [email protected]
및 hotmail.com
항상 줄의 시작 부분에서 일치합니다.
다음을 사용합니다.
^(?!.*@)|(?<=@)
@
나머지 문자열에없는 경우에만 문자열의 시작과 일치 하고 @
그렇지 않은 경우 0 너비 공백 이 일치합니다 .
설명 :
@
"는 이후 공간 " @
"^(?!.*@)
@
음의 미리보기를 사용하여 문자열에서 뒤에 오는 문자열이없는 문자열의 시작과 일치합니다 .(?<=@)
@
긍정적 인 lookbehind를 사용한 후 공간과 일치당신은 할 수 여기를보십시오 .
if / else의 문제는 조건자가 전체 문자열을 확인하지 않고 다음 문자 만 확인하므로 첫 번째 문자가 아닌 경우 @
문자열의 시작과 일치한다는 것입니다. 또한, "predicate"와 "then"은 함께 사용되지 않습니다. 술어는 다음 문자가인지 @
테스트 한 다음 이전 문자가 있는지 테스트합니다. 나는 if / else 해킹이 둘러보기와 잘 작동한다고 생각하지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다