【问题标题】:Modify(prefixing or postfixing) existing regular expression to exclude trailing period from matches修改(前缀或后缀)现有正则表达式以从匹配项中排除尾随句点
【发布时间】:2018-06-20 17:42:04
【问题描述】:

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

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

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

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

(?!.*\.)(R)

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

总结:

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

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

【问题讨论】:

  • 转义正则表达式中的.?!?
  • 你当前的正则表达式是什么?
  • 在末尾添加\b。或者,如果您需要避免在末尾与 . 匹配,请在末尾添加 \b(?!\.)

标签: javascript regex


【解决方案1】:

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

改变

R

(R)(?<!\.)

【讨论】:

    猜你喜欢
    • 2020-05-19
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    相关资源
    最近更新 更多