正则表达式否定替换?
如果 HTTP_HOST 是 [ANY].yomomedia.com,我需要获取“yomomedia.com”,除非它是“dev.yomomedia.com”,否则它应该返回 dev.yomomedia.com
echo preg_replace("/^([EVERYTHING-OTHER-THAN-DEV])\./Ui","",$_SERVER['SERVER_NAME'])
只是尝试了以下操作,但没有成功:
echo preg_replace("/^(?!dev)\./Ui",'','www.yomomedia.com'); // returns www.yomomedia.com
echo preg_replace("/^(?!dev)\./Ui",'','dev.yomomedia.com'); // returns dev.yomomedia.com
I need to get "yomomedia.com" if the HTTP_HOST is [ANY].yomomedia.com except in the cases where it is "dev.yomomedia.com" else it should return dev.yomomedia.com
echo preg_replace("/^([EVERYTHING-OTHER-THAN-DEV])\./Ui","",$_SERVER['SERVER_NAME'])
Just tried the following with no success:
echo preg_replace("/^(?!dev)\./Ui",'','www.yomomedia.com'); // returns www.yomomedia.com
echo preg_replace("/^(?!dev)\./Ui",'','dev.yomomedia.com'); // returns dev.yomomedia.com
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
消极被动组(前瞻)应该这样做:
A negative passive group (lookahead) should do:
环顾 不会“消耗”任何字符。 因此,您的表达式的含义与前三个字符不是
dev
(^(?!dev)
) AND 第一个字符相同是句号 (^\.
)。所以尝试一下:
或者:
Look-arounds do not “consume” any characters. So your expression means the same as the first three characters are not
dev
(^(?!dev)
) AND the first character is a full stop (^\.
).So try either this:
Or: