[英]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.