繁体   English   中英

preg_replace与正则表达式模式

[英]preg_replace with regex pattern

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

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

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

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

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

你可以用它。 \\b将不匹配A2

试试这个正则表达式 -

A( |$)

DEMO在这里

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

使用一个正向的bebehind bened正则表达式匹配所有A之后存在的数字。

(?<=\d)A

然后用Amp替换匹配的A

DEMO

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM