preg_replace如果string不存在,则追加

时间:2013-07-28 09:06:05

标签: php regex replace preg-replace preg-match

我如何调整正则表达式来检查匹配中是否存在字符串以便不重复它

这是我想要的一个例子(假代码)

$string = "1234";
$replacement = "/$1(5?)/"; // this should check if "5" is in $string, if not then add it with $1 
preg_replace('/(.*)/', $replacement, $string);

$replacement有什么好的建议?
我只想使用preg_replace一行代码而不使用其他功能

2 个答案:

答案 0 :(得分:3)

preg_replace('/^([^5]*)$/', '${1}5', '1253'); # => 1253
preg_replace('/^([^5]*)$/', '${1}5', '1234'); # => 12345

注意:使用${1}5代替$15来区分group 1literal 5`。

答案 1 :(得分:0)

你可以使用strpos()

if( strpos($string, $keyword) === false) {
 $string = $string. $keyword;
}