preg_replace与正则表达式模式

时间:2015-03-12 05:53:56

标签: php regex

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

但是,它不应该将 A2 转换为 Amp 2

preg_replace可以用正则表达式解决这个问题吗?

5 个答案:

答案 0 :(得分:1)

$re = "/A\\b/im";
$str = "2.7A\nA2";
$subst = "Amp";

$result = preg_replace($re, $subst, $str);

您可以使用此功能。\bA2不匹配。

答案 1 :(得分:1)

试试这个正则表达式 -

A( |$)

DEMO here

答案 2 :(得分:1)

<?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

答案 3 :(得分:1)

使用正面的bebehind bened正则表达式来匹配紧跟一个数字后存在的所有A

(?<=\d)A

然后将匹配的A替换为Amp

DEMO

echo preg_replace('~(?<=\d)A~', 'Amp', $str);

答案 4 :(得分:0)

如果您想将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);
}