當前位置: 首頁> 最新文章列表> 替換email 地址中的域名部分

替換email 地址中的域名部分

M66 2025-05-28

在PHP 中處理字符串替換操作時,尤其是涉及到多字節字符編碼(如UTF-8)的時候, mb_eregi_replace函數是一個非常有用的工具。它不僅支持正則表達式匹配,還具備忽略大小寫的特性,並且兼容多字節編碼。

本文將介紹如何使用mb_eregi_replace函數來替換email 地址中的域名部分。比如,假設我們有一組email 地址,我們想將這些地址中的域名全部替換成m66.net


mb_eregi_replace 簡介

mb_eregi_replace的語法如下:

 mb_eregi_replace($pattern, $replacement, $string, $option = 'msr');
  • $pattern是要匹配的正則表達式(不區分大小寫)。

  • $replacement是替換的內容。

  • $string是要處理的字符串。

  • $option是正則表達式的匹配選項,通常默認即可。


替換email 中的域名

問題分析

Email 地址一般格式為用戶名@域名,其中:

  • 用戶名部分可以是任意字符(不含@

  • 域名部分一般是xxx.xxx形式

目標是替換@後面的域名為m66.net


代碼示例

<?php
// 測試用的 email 地址
$email = "user123@example.com";

// 使用 mb_eregi_replace 替換域名部分
// 解釋:
// 1. 正則表達式中,@ 後面匹配除空格之外的所有字符直到結尾
// 2. 替換為 @m66.net

$pattern = '@[^\\s]+$';  
$replacement = '@m66.net';

$new_email = mb_eregi_replace($pattern, $replacement, $email);

echo $new_email;  // 輸出:user123@m66.net
?>

代碼說明

  • 正則表達式中的@[^\\s]+$

    • @是匹配email 中的@字符。

    • [^\\s]+表示匹配非空白字符的連續字符(即域名部分)。

    • $表示匹配字符串結尾。

  • 替換為@m66.net ,實現將域名部分替換成固定的m66.net


處理多個email 地址示例

如果有多個email 需要批量替換:

 <?php
$emails = [
    "alice@gmail.com",
    "bob@company.org",
    "carol123@sub.domain.net"
];

$pattern = '@[^\\s]+$';
$replacement = '@m66.net';

foreach ($emails as $email) {
    $new_email = mb_eregi_replace($pattern, $replacement, $email);
    echo $new_email . "\n";
}

/*
輸出:
alice@m66.net
bob@m66.net
carol123@m66.net
*/
?>