正则表达式找到10个以上的角色实例

时间:2016-03-08 14:38:44

标签: regex

我试图弄清楚如何制作一个正则表达式,它将在段落/字符串中找到某个特定字符的X实例。它将包括换行符,并且字符不连续。我觉得这应该很简单,但我似乎无法弄清楚(并且在网上搜索,我似乎只能找到连续抓取相同角色的解决方案)。

不幸的是,它必须是一个正则表达式。

1 个答案:

答案 0 :(得分:0)

如果您选择的正则表达式引擎支持内联修饰符,则可以使用

(?s)^[^X]*(?:X[^X]*){10}
  • (?s)是单线模式的修饰符(点匹配换行符)
  • ^是字符串开头的锚点
  • [^X]*匹配任何非X,零到无限次的内容
  • (?:X[^X]*){10}匹配X后跟0或更多不是X,10次

假设你想要的角色是X - 你可以随心所欲地替换它。出于性能原因,我使用了否定的类[^X],因为它比.*.*?

更快

请参阅https://regex101.com/r/tW8tH4/1了解演示。