Düzenli ifade negatif yerine?

2 Cevap php

HTTP_HOST [HERHANGİ] ise ben "yomomedia.com" almak gerekir. Yomomedia.com it "dev.yomomedia.com" olduğu durumlar haricinde başka o dev.yomomedia.com dönmelidir

echo preg_replace("/^([EVERYTHING-OTHER-THAN-DEV])\./Ui","",$_SERVER['SERVER_NAME'])

Sadece hiçbir başarı ile aşağıdaki çalıştı:

echo preg_replace("/^(?!dev)\./Ui",'','www.yomomedia.com'); // returns www.yomomedia.com
echo preg_replace("/^(?!dev)\./Ui",'','dev.yomomedia.com'); // returns dev.yomomedia.com

2 Cevap

Negatif pasif grubu (lookahead) yapmanız gerekir:

/^(?!dev).*\./Ui

Look-arounds herhangi bir karakter "tüketmek" değil. Bu yüzden ifade ile aynı anlama gelir the first three characters are not dev (^(?!dev)) ve the first character is a full stop (^\.).

Yani ya bu deneyin:

/^(?!dev\.)[^.]+\./Ui

Veya:

/^[^.]+\.(?<!^dev\.)/Ui