【问题标题】:RegEx for finding words between dots [duplicate]用于在点之间查找单词的正则表达式 [重复]
【发布时间】:2019-06-23 10:20:39
【问题描述】:

我是 RegEx 的新手,我想使用正则表达式在点之间查找单词。

例如,文本是这样的:

abc.efg.hij.klm.opq.

我尝试了以下正则表达式:

\.(\w+)\.

它只显示 2 个匹配项:

.efg.
.klm.

为什么我会得到这个结果?

这里是正则表达式的链接:https://regex101.com/r/pqMN8t/1/

【问题讨论】:

  • 你需要类似“\.*\w+\.”的东西吗?
  • 对我来说,这不是上面标记的副本。不完全是。嗯,原因是一样的,但解决方案不是。下面的 Sweeper 回答为我提供了我正在寻找的确切解决方案。

标签: python regex


【解决方案1】:

它只显示两个匹配项,因为正则表达式引擎不会匹配它已经匹配的内容。匹配.efg.后,不会匹配hij之前的点,因为那个点已经匹配了(efg之后的点)。

解决此问题的一种方法是不匹配点,而是使用前瞻和后瞻:

(?<=\.)\w+(?=\.)

这样,点就不会匹配了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2014-04-10
    相关资源
    最近更新 更多