정규 표현을 사용해 @ 뒤에 전자 메일의 문자열의 일부를 얻고 싶다. 예를 들어 '[email protected]'문자열이 있는데 'gmail.com'을 가져오고 싶습니다. 나는 /^@./ 을 썼다 그러나 내가PHP 정규 표현을 사용해 문자열의 일부를 찾는다
내가 그것을 어떻게 해결할 수preg_match('/^@./', $string, $output);
print($output);
을 썼다 워크하지 않는 이유는 무엇입니까?
정규 표현을 사용해 @ 뒤에 전자 메일의 문자열의 일부를 얻고 싶다. 예를 들어 '[email protected]'문자열이 있는데 'gmail.com'을 가져오고 싶습니다. 나는 /^@./ 을 썼다 그러나 내가PHP 정규 표현을 사용해 문자열의 일부를 찾는다
내가 그것을 어떻게 해결할 수preg_match('/^@./', $string, $output);
print($output);
을 썼다 워크하지 않는 이유는 무엇입니까?
왜 이런 종류의 간단한 작업을 하시겠습니까? substr
의 조합으로 strpos
을 사용하거나 explode()
과 @
을 다른 응답의 지시대로 첫 번째 매개 변수로 사용하십시오.
$email_string = "[email protected]";
$result = substr($email_string, strpos($email_string, "@") + 1);
echo $result ;
몇 가지 실수가 있습니다. 먼저, 캐럿을 사용하여 @ 기호가 문자열의 첫 번째 문자가되도록 말하고 있습니다. 따라서 결코 일치하지 않을 전자 우편을 위해. 그런 다음 캡처 그룹을 설정하여 실제로 @ 뒤에있는 부분을 가져와야합니다. 그것은 다음과 같이 거라고 그래서 :
<?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
아래 투표의 이유는 무엇입니까? –