首页 > 解决方案 > 修改(前缀或后缀)现有正则表达式以从匹配项中排除尾随句点

问题描述

我想编写 javascript 正则表达式,从文本框架中查找所有 URL。但是,我不想包含尾随点(通常是段落/句子的结尾)。

例如,在下面的行中,它应该只匹配http://example1.comhttp://example2.com(希望尾随句点不是匹配匹配的一部分)

有关更多信息,请查看http://example1.com。另一个链接是http://example2.com

我已经有正则表达式(R),但问题是它包含尾随点。现在,我该如何修改,使其从所有匹配的表达式中排除尾随点。我尝试过消极的展望:

(?!.*\.)(R)

但它会将 URL 中任何位置的所有内容都排除为句点,防止匹配。

总之:

我想修改正则表达式以从匹配中排除结束期。我不想破坏现有正则表达式的格式。我想通过仅在现有正则表达式前加前缀或后缀来修改正则表达式。

注意:现有的正则表达式也将匹配没有尾随句点的表达式。因此,仅排除所有以句点结尾的匹配就足够了。

标签: javascriptregex

解决方案


我可以通过消极的观察来解决这个问题。(需要最新版本的 javascript):

改变

R

(R)(?<!\.)

推荐阅读