Исключить слово в совпадении - PullRequest
0 голосов
/ 24 мая 2019

Я делаю адреса электронной почты кликабельными с помощью этого кода:

function makeemail($str) {

   $str = preg_replace('/([\!~#$%&=?^*\/_\.\+0-9a-zæøå-]+)@(([0-9a-zæøå-]+\.)+[a-z]{2,12})/i', '<a href="mailto:$1@$2" title="">$1@$2</a>', $str);

   return trim($str);

}

Что я могу сделать, чтобы игнорировать текст, где "http://" и" https://" является его частью? (или, может быть, просто "http", если быть проще)

Некоторые URL-адреса http-серверов могут содержать @ в адресе, а я имею дело с URL-адресами http в другой функции.

Я немного регби нуб.Я попытался добавить ?!http:\/\/ или ?!https?:\/\/ с паратезами и без них, но это не сработало, и это не в моей компетенции, где / как это точно указать.


emailaddress@example.com - это должностать <a href="mailto:email@address.com" title="">email@address.com</a> (что делает отлично)

http://userid:password@example.com:8080/ - это следует игнорировать и оставить как есть, поскольку оно содержит http(s)://)

...