【问题标题】:Check if a word appears twice with regex [duplicate]使用正则表达式检查一个单词是否出现两次 [重复]
【发布时间】:2018-08-14 13:00:33
【问题描述】:

我想用正则表达式检查link这个词是否在一个句子中出现了两次。

这句话是:“这个链接无效。试试下面的链接。” --> 这里我需要正则表达式来检查“链接”是否出现了两次。

这是我第一次尝试正则表达式,到目前为止我只了解\b(link)\b 这样的分组。有了这个,我可以检查单词链接是否出现,但我需要知道它是否出现了两次。

我怎样才能做到这一点?

【问题讨论】:

  • @tobias_k 说明.*可以用来匹配两个相同单词之间的任意字符。 \blink\b.*\blink\b暂时可以,除非有别的事。
  • @WiktorStribiżew 没关系,我读的问题是检查 any 单词是否出现两次,但如果 OP 只想检查“链接”,同样可以用作对于“http”。

标签: regex word repeat


【解决方案1】:

试试这个:

\b(link)\b(?=.*\b\1\b)

这会让您第一次出现重复的单词。

在这里用你的句子测试它:https://regex101.com/r/2zGSKj/2

没有组的更短的解决方案就是

\blink\b.*\blink\b

在这里测试过:https://regex101.com/r/2zGSKj/3

【讨论】:

  • 并非所有正则表达式库都允许前瞻和/或反向引用。
  • @BlueCat:它只显示一个,但只有在单词链接出现两次时才会显示。所以你有你的支票。
猜你喜欢
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多