php - 排除匹配中的单词
问题描述
我正在使用此代码制作可点击的电子邮件地址:
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”,简单来说)
一些 http 服务器 url 的地址中可以有 @,而我正在处理另一个函数中的 http url。
我是一个正则表达式菜鸟。我尝试添加?!http:\/\/
或?!https?:\/\/
使用和不使用括号,但它不起作用,并且它超出了我的范围/如何准确放置它。
emailaddress@example.com
- 这应该成为<a href="mailto:email@address.com" title="">email@address.com</a>
(它完美地做到了)
http://userid:password@example.com:8080/
- 这应该被忽略并保持原样,因为它包含http(s)://
)
解决方案
推荐阅读
- bluetooth - 如何在不拔下 USB/重新启动的情况下在 Linux 上重置蓝牙适配器?
- python - 在 Dropbox Python API v2 中下载文件时遇到问题
- excel - 删除“联合”非连续范围
- api - 将 Canvas LMS API 调用中的 \N 替换为 NULL
- sql - SQL:连接两个时间序列数据并计算给定时间点的总数和比率
- c++ - 多级继承中的 CRTP derived() 方法
- javascript - 在节点js中将html表数据插入mysql数据库
- html - 仅 CSS 手风琴布局
- javascript - Javascript 为什么标头脚本中的对象属性可以,但在 html 中未定义?
- react-native - 如何在 Connect 组件下的 graphql 查询中使用 $filter 变量?