簡體   English   中英

PHP:查找並替換為regex

[英]PHP: Find and replace with regex

我有一個包含電子郵件地址的變量。

例子:

    $email[1]="email(at)test.com";
    $email[2]="email[at]test.com";
    $email[3]="email(a)test.com";
    $email[4]="email(alfa)test.com";
    $email[5]="email[a]test.com";

如何在PHP中執行正則表達式,以找到()和[]之間的所有內容並替換為“ @”。 所以最終它將是這樣的:

    $email[1]="email@test.com";
    $email[2]="email@test.com";
    $email[3]="email@test.com";
    $email[4]="email@test.com";
    $email[5]="email@test.com";

我目前所擁有的就是這個(((([a-zA-Z] +])|([[a-zA-Z] +])))

正則表達式:

[(\[][a-z]+[)\]]

替換字符串:

@

演示

例:

<?php
$string = 'email(alfa)test.com';
$pattern = '~[(\[][a-z]+[)\]]~';
$replacement = '@';
echo preg_replace($pattern, $replacement, $string);
?> //=> email@test.com

用這個:

$replaced = preg_replace('~[([][^])]+[\])]~', '@', $yourstring);

說明

  • ~[([]與左括號或大括號匹配
  • [^])]+匹配不是右括號或大括號的所有字符
  • [\\])]與右括號或大括號匹配
  • 我們用@代替

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM