javascript - 修改(前缀或后缀)现有正则表达式以从匹配项中排除尾随句点
问题描述
我想编写 javascript 正则表达式,从文本框架中查找所有 URL。但是,我不想包含尾随点(通常是段落/句子的结尾)。
例如,在下面的行中,它应该只匹配http://example1.com 和http://example2.com(希望尾随句点不是匹配匹配的一部分)
有关更多信息,请查看http://example1.com。另一个链接是http://example2.com。
我已经有正则表达式(R),但问题是它包含尾随点。现在,我该如何修改,使其从所有匹配的表达式中排除尾随点。我尝试过消极的展望:
(?!.*\.)(R)
但它会将 URL 中任何位置的所有内容都排除为句点,防止匹配。
总之:
我想修改正则表达式以从匹配中排除结束期。我不想破坏现有正则表达式的格式。我想通过仅在现有正则表达式前加前缀或后缀来修改正则表达式。
注意:现有的正则表达式也将匹配没有尾随句点的表达式。因此,仅排除所有以句点结尾的匹配就足够了。
解决方案
我可以通过消极的观察来解决这个问题。(需要最新版本的 javascript):
改变
R
至
(R)(?<!\.)
推荐阅读
- django - 使用 Django 的多个数据库
- java - 自定义正文错误消息 - Spring Boot REST
- node.js - Sequelize:未处理的拒绝错误:不能同时设置`replacements`和`bind`
- c# - MainWindow 的 MinWidth 属性已绑定但不起作用 - 如何在 MVVM 中完成它并使用设置类?
- igraph - 使用 igraph 重新布线后损坏的图表
- sql - 仅在报告中手动更改员工部门
- reactjs - 如何使用“three-gltf-loader”npm 包制作动画
- r - “这个 for 循环是否有更快的替代方案,我需要将每一行与其他行相乘一次?”
- angular - 在 Angular 中,订阅和订阅的目的是什么?我们应该在哪里使用(构造函数或 ngOnInit)?
- python - 使用 Google Drive API 的 service.permissions().list 中的“无效字段选择 emailAddress”