2017-09-16 1 views
0

정규 표현을 사용해 @ 뒤에 전자 메일의 문자열의 일부를 얻고 싶다. 예를 들어 '[email protected]'문자열이 있는데 'gmail.com'을 가져오고 싶습니다. 나는 /^@./ 을 썼다 그러나 내가PHP 정규 표현을 사용해 문자열의 일부를 찾는다

내가 그것을 어떻게 해결할 수
preg_match('/^@./', $string, $output); 
print($output); 

을 썼다 워크하지 않는 이유는 무엇입니까?

+0

아래 투표의 이유는 무엇입니까? –

답변

1

왜 이런 종류의 간단한 작업을 하시겠습니까? substr의 조합으로 strpos을 사용하거나 explode()@을 다른 응답의 지시대로 첫 번째 매개 변수로 사용하십시오.

$email_string = "[email protected]";  
$result = substr($email_string, strpos($email_string, "@") + 1);  
echo $result ; 
2

몇 가지 실수가 있습니다. 먼저, 캐럿을 사용하여 @ 기호가 문자열의 첫 번째 문자가되도록 말하고 있습니다. 따라서 결코 일치하지 않을 전자 우편을 위해. 그런 다음 캡처 그룹을 설정하여 실제로 @ 뒤에있는 부분을 가져와야합니다. 그것은 다음과 같이 거라고 그래서 :

<?php 
$mail = "[email protected]"; 
preg_match('/@(.+)/', $mail, $output); 
print_r($output[1]); // gmail.com 

그러나을, 이것은 당신이 정규식 포함을 사용하지 않아야 같은 간단한 작업입니다. explode()는 다음을 수행합니다.

<?php 
$mail = "[email protected]"; 
$mailArray = explode("@", $mail); 
print_r($mailArray[1]); // gmail.com 
+0

내 게시물을 아래로 투표 한 이유를 말씀해 주시겠습니까? –

+0

내가 그랬어? 실수 일 수도 있습니다. 삭제 했습니까? – ishegg

+0

@SahilGulati 귀하의 답변을 삭제 취소, 물론 내 경우 downvote를 제거합니다. – ishegg

관련 문제