【问题标题】:regex n occurences of a letter anywhere in the string [duplicate]正则表达式在字符串中任意位置出现 n 个字母 [重复]
【发布时间】:2018-09-20 08:22:05
【问题描述】:

我有这些示例文本字符串

my Mission was successful
my task was not successful

我想将它与一个正则表达式匹配,该正则表达式指出在字符串中的任何位置总共出现 6 次字母 s。

s{6}

不起作用,因为我认为它希望所有 6 次出现都是连续的。

有什么线索吗?

在一个伪代码中我想我正在寻找的是这样的

count(/s/)==6

但我不确定是否可以在单个正则表达式中使用。

【问题讨论】:

  • 它是什么编程语言?
  • 在我对. 的评论与s 匹配后,不知何故删除了答案。但是你可以使用:(s[^s]*?){6}
  • 完美,gaw 的答案也有效,但不同之处在于匹配的字符串捕获组。 gaw 的答案将捕获包含的字符串,而 blhsing 的答案将捕获有问题的整个字符串。

标签: regex


【解决方案1】:

您可以改用^[^s]*(?:s[^s]*){6}$

演示:https://regex101.com/r/a9UE5K/2

【讨论】:

  • 但是 .也会匹配s,这有时可能是一个问题,或者?您可以使用(s[^s]*?){6}
  • 确实,我没有意识到 OP 只想匹配恰好出现 6 次 s 的字符串。固定的。谢谢。
  • 感谢blhsing,完美
猜你喜欢
  • 2013-03-09
  • 2015-09-30
  • 1970-01-01
  • 2022-10-12
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多