代码之家  ›  专栏  ›  技术社区  ›  code707

修改(前缀或后缀)现有正则表达式以从匹配项中排除尾随句点

  •  0
  • code707  · 技术社区  · 6 年前

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

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

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

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

    (?!.*\.)(R)
    

    但它将URL中的所有内容都排除在句点之外,以防止匹配。

    总之:

    我想修改正则表达式以从匹配项中排除结束期间。我不想破坏现有正则表达式的格式。我想要修改的正则表达式,只需在现有的正则表达式之前加前缀或之后进行修复。

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   code707    6 年前

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

    改变

    R
    

    (R)(?<!\.)