Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反复浏览每个";匹配“;(Ruby正则表达式)_Ruby_Regex - Fatal编程技术网

反复浏览每个";匹配“;(Ruby正则表达式)

反复浏览每个";匹配“;(Ruby正则表达式),ruby,regex,Ruby,Regex,好的,我可以在字符串中找到一个正则表达式匹配项,并进行一些捕获。 现在,如果我的字符串有很多匹配项呢?假设我的代码找到了字符串中括号内的数字。代码将在如下字符串中找到数字 (五) 但是如果字符串是 (5) (6)(7) 我需要一种迭代这三个元素的方法。我看过教程,但它们似乎只讨论一次性匹配…如果我理解正确,您可以使用String#scan方法。请参阅文档。可用于查找给定正则表达式的所有匹配项: "(5) (6) (7)".scan(/\(\d+\)/) { |match| puts "Found

好的,我可以在字符串中找到一个正则表达式匹配项,并进行一些捕获。 现在,如果我的字符串有很多匹配项呢?假设我的代码找到了字符串中括号内的数字。代码将在如下字符串中找到数字

(五)

但是如果字符串是

(5) (6)(7)


我需要一种迭代这三个元素的方法。我看过教程,但它们似乎只讨论一次性匹配…

如果我理解正确,您可以使用
String#scan
方法。请参阅文档。

可用于查找给定正则表达式的所有匹配项:

"(5) (6) (7)".scan(/\(\d+\)/) { |match| puts "Found: #{match}" }
# Prints:
Found: (5)
Found: (6)
Found: (7)
您可以使用正向后看(
"(5) (6) (7)".scan(/(?<=[(])\d+(?=\))/) { |match| puts "Found: #{match}" }
# Prints:
Found: 5
Found: 6
Found: 7
"(5) (6) (7)".scan(/(?<=[(])\d+(?=\))/)
=> ["5", "6", "7"]