preg_replace正则表达式模式


preg_replace with regex pattern

这段代码str_replace('A', ' Amp', $var)可以将 2.7A 转换为 2.7 A

但是,它不应该将 A2 转换为放大器 2

使用正则表达式模式preg_replace可以解决此问题吗?

使用正面的正则表达式将紧随其后存在的所有A与数字相匹配。

(?<='d)A

然后将匹配的A替换为 Amp

演示

echo preg_replace('~(?<='d)A~', 'Amp', $str);
$re = "/A''b/im";
$str = "2.7A'nA2";
$subst = "Amp";
$result = preg_replace($re, $subst, $str);

你可以使用它。'b不会匹配A2.

试试这个正则表达式 -

A( |$)

在这里演示

<?php
$str="A2";
$pattren=array();
$pattren[0]="A2";
$replacement=array();
$replacement[0]="amp2";
echo str_replace($pattren,$replacement,$str);?>

使用正则表达式模式

   <?php
$str="A2";
$pattren=array();
$pattren[0]="/A2/";
$replacement=array();
$replacement[0]="amp2";
echo preg_replace($pattren,$replacement,$str);?>

演示 : https://eval.in/299021

如果您想在任何

数字的末尾将 A 更改为 Amp,您可以尝试此操作(尽管不是正则表达式)

$strstr="3.4A"; //any value in this string

if ((is_numeric(substr($strstr, 0, strlen($strstr)-1))) && (substr($strstr, -1)=="A")){
    echo str_replace('A', ' Amp', $strstr);
}