0

一致する文字列が重複しないように存在するかどうかを確認するように正規表現を調整するにはどうすればよいですか

ここに私が欲しいものの例があります(偽のコード)

$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何ですか? 1 行コード
のみを使用し、他の機能は使用したくないpreg_replace

4

2 に答える 2

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

: 5`と区別する${1}5代わりに使用されます。$15group 1literal

于 2013-07-28T09:11:14.053 に答える
0

strpos() を使用できます

if( strpos($string, $keyword) === false) {
 $string = $string. $keyword;
}
于 2013-07-28T09:11:59.763 に答える