如何遍历正则表达式的匹配组

松材线虫

我遇到以下情况,无法按我预期的方式工作,并且我做错了事,但我无法确定那是什么。脚本匹配句子中的四个字母单词。我想找到一种方法来遍历匹配的组。

x = "This is a statement with four letter words like this"
result = x.match /(\b\w{4}\b)/
=> #<MatchData "This" 1:"This"> 

不幸的是,$1包含"This",但这就是我所能得到的。$2应该包含"with"但它是nil我究竟做错了什么?为什么$2 nil呢?为什么$nn>=2零?

undur_gongor

这是因为您的正则表达式仅匹配一次,并且仅包含一个捕获组。

您可能想要:

x.scan /\b\w{4}\b/

这将为您提供所有匹配项的数组。

$1$2...设置为正则表达式的单个匹配中的组,例如

x.match(/(\b\w{4}\b).*(\b\w{4}\b)/)

$1'This'$2'this'

该团体还可以通过访问$~[1]$~[2]...或Regexp.last_match[1]...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何遍历正则表达式的匹配组

来自分类Dev

正则表达式如何匹配匹配的组

来自分类Dev

正则表达式匹配组

来自分类Dev

如何合并正则表达式组匹配?

来自分类Dev

Swift正则表达式-如何提取匹配的组

来自分类Dev

如何告诉正则表达式不匹配组?

来自分类Dev

正则表达式 - 如何匹配子组

来自分类Dev

如何在不匹配的组之后排除匹配的组-正则表达式

来自分类Dev

如何匹配正则表达式

来自分类Dev

在Python正则表达式中循环遍历组

来自分类Dev

遍历Rust中的命名正则表达式组

来自分类Dev

如何使正则表达式匹配组排除匹配字符?

来自分类Dev

如何使正则表达式匹配组排除匹配字符?

来自分类Dev

正则表达式组与空间匹配

来自分类Dev

复杂正则表达式与捕获组匹配

来自分类Dev

正则表达式匹配JavaScript中的反向组

来自分类Dev

正则表达式以匹配书名-组

来自分类Dev

带可选匹配组的正则表达式

来自分类Dev

组1不匹配每个正则表达式

来自分类Dev

正则表达式匹配多个组

来自分类Dev

JavaScript正则表达式全局匹配组

来自分类Dev

正则表达式与特殊字符组匹配

来自分类Dev

确定正则表达式中匹配的组

来自分类Dev

正则表达式组完全匹配n次

来自分类Dev

Java正则表达式分别匹配每个组

来自分类Dev

正则表达式匹配并比较捕获的组

来自分类Dev

正则表达式匹配短语并创建捕获组

来自分类Dev

Java正则表达式匹配器-多个组

来自分类Dev

正则表达式-匹配相同模式的组