我如何调整正则表达式来检查匹配中是否存在字符串以便不重复它
这是我想要的一个例子(假代码)
$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
一行代码而不使用其他功能
答案 0 :(得分:3)
preg_replace('/^([^5]*)$/', '${1}5', '1253'); # => 1253
preg_replace('/^([^5]*)$/', '${1}5', '1234'); # => 12345
注意:使用${1}5
代替$15
来区分group 1
与literal
5`。
答案 1 :(得分:0)
你可以使用strpos()
if( strpos($string, $keyword) === false) {
$string = $string. $keyword;
}