替换字符串中的所有事件,但以“开始”开头的事件除外;http「;或;https";使用php
我正在尝试用php编写一个函数,我想用“.”替换所有出现的“www.” 我已尝试使用此代码,但我不希望字符串“.”变为“.”替换字符串中的所有事件,但以“开始”开头的事件除外;http「;或;https";使用php,php,regex,regex-negation,Php,Regex,Regex Negation,我正在尝试用php编写一个函数,我想用“.”替换所有出现的“www.” 我已尝试使用此代码,但我不希望字符串“.”变为“.” 有什么建议吗?将^锚添加到您的正则表达式: $text = preg_replace("/^www\./", "http://www.", $data); ^ -- this one 注意:注意模式参数中的正则分隔符(/…/) 此行起始锚点有助于确保要替换的www.字符串位于$data字符串的开头。它将防止这样一个字符串中间
有什么建议吗?将
^
锚添加到您的正则表达式:
$text = preg_replace("/^www\./", "http://www.", $data);
^ -- this one
注意:注意模式参数中的正则分隔符(/…/
)
此行起始锚点有助于确保要替换的
www.
字符串位于$data
字符串的开头。它将防止这样一个字符串中间的任何不需要的替换:<代码>重定向器.COM//www. StaskPoox.com < /Cult> < P>将<代码> ^ < /代码>锚点添加到正则表达式:
$text = preg_replace("/^www\./", "http://www.", $data);
^ -- this one
注意:注意模式参数中的正则分隔符(/…/
)
此行起始锚点有助于确保要替换的
www.
字符串位于$data
字符串的开头。它将防止这样一个字符串中间的任何不需要的替换:<代码>重定向器.COM/?www. StasPox.com。
'~(?<!://)www\.~'
(?!http://)www\.
”~(?您可以通过反向查找来实现这一点:
'~(?<!://)www\.~'
(?!http://)www\.
”~(?试试这个。这不仅会检查HTTP,还会检查HTTPS、FTP等其他协议
function addPrefix($url) {
if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
$url = "http://" . $url;
}
return $url;
}
echo addPrefix("http://ww.google.com");
试试这个。这不仅会检查HTTP,还会检查HTTPS、FTP等其他协议
function addPrefix($url) {
if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
$url = "http://" . $url;
}
return $url;
}
echo addPrefix("http://ww.google.com");
您可以尝试负面查找:
'~(?<!://)www\.~'
(?!http://)www\.
您可以尝试负面查找:
'~(?<!://)www\.~'
(?!http://)www\.
试试这个简化的代码
i.e $url='www.xyz.com';
function urlModified($patterns, $replace, $url)
{
$patterns = array ('http://www.');
$replace = array ('/^www\./');
preg_replace($patterns, $replace, $url);
return $url;
}
试试这个简化的代码
i.e $url='www.xyz.com';
function urlModified($patterns, $replace, $url)
{
$patterns = array ('http://www.');
$replace = array ('/^www\./');
preg_replace($patterns, $replace, $url);
return $url;
}