当前位置: 首页 > 面试题库 >

JavaScript如何用正则表达式匹配重叠的字符串?

巫坚白
2023-03-14
问题内容

假设我有琴弦

"12345"

如果我.match(/\d{3}/g)只有一场比赛,"123"。我为什么不明白[ "123", "234", "345" ]


问题答案:

您不能仅使用正则表达式来做到这一点,但是可以非常接近:

var pat = /(?=(\d{3}))\d/g;

var results = [];

var match;



while ( (match = pat.exec( '1234567' ) ) != null ) {

  results.push( match[1] );

}



console.log(results);

换句话说,您捕获了前行中的所有三个数字,然后返回并以常规方式匹配一个字符,只是为了提高匹配位置。你怎么消费这个角色都没有关系。.效果一样好\d。而且,如果您真的很喜欢冒险,可以只使用前瞻功能,并让JavaScript处理凹凸不平的问题。

此代码改编自此答案。我本来会将此问题标记为该问题的重复部分,但是OP接受了另一个较小的答案。



 类似资料:
  • 问题内容: 我试图创建下面的正则表达式:返回之间的字符串和(或或)从下列字符串RNA: ,让所有的比赛会被发现,包括重叠的。 我尝试了几种正则表达式,最后得到了类似的结果: 您能告诉我我的正则表达式模式中的错误吗? 问题答案: 用一个正则表达式执行此操作实际上是非常困难的,因为大多数用法 都不 希望重叠匹配。但是,您可以通过一些简单的迭代来做到这一点: 虽然,这有一些问题。您希望得到的回报是什么?

  • 问题内容: 在下面的代码中: 结果是: 我希望成为 如何实现? 问题答案: 使匹配器尝试从后者开始下一个扫描。

  • 本文向大家介绍String字符串匹配javascript 正则表达式,包括了String字符串匹配javascript 正则表达式的使用技巧和注意事项,需要的朋友参考一下 在JavaScript代码中使用正则表达式进行模式匹配经常会用到String对象和RegExp对象的一些方法,例如replace、match、search等方法,下面所述是对相关方法使用的总结,需要的朋友参考下。 String对

  • 问题内容: 在正则表达式中匹配非ASCII字符的最简单方法是什么?我想在输入字符串中单独匹配所有单词,但是语言可能不是英语,因此我需要匹配ü,ö,ß和ñ。另外,这是在Javascript/ jQuery中,因此任何解决方案都需要适用于此。 问题答案: 应该这样做: 它匹配ASCII字符集(0-127,即0x0至0x7F)中不包含的任何字符。 您可以使用Unicode执行相同的操作: 对于unico

  • 问题内容: 我正在尝试创建一个匹配字符串的正则表达式,如果它连续有3个或多个重复字符(例如aaaaaa,testtttttt,otttttter)。 我尝试了以下方法: 连续 匹配 任意 3个字符,但不 连续的 字符…我在哪里出错? 问题答案: 您要的内容无法使用 真正的 正则表达式完成,您需要的是(不规则的)反向引用。尽管许多正则表达式引擎实现了它们,但Go使用的RE2却没有。RE2是一种快速的

  • 问题内容: 我需要匹配重复两次的任何字符,例如: 应匹配“ cc”和“ ff”。在任何其他正则表达式语法中,让我们使用Javascript作为快速示例,我可以这样做: 哪个返回 但是Go的regexp似乎不允许这样做。可以在Go中执行此操作吗? 问题答案: 由于re2不支持向后引用,因此您需要: 要么使用另一个正则表达式库(如) 或编写一个无需进行正则表达式分析的循环