正则表达式的问题

正则表达式的问题

string#gsub(pattern){|match| block}

这是我在文档上看到的,可实际上 match不是MatchData对象 而是一个String

这样我如何找到正则表达式中的()内的内容了

比如

[Copy to clipboard] [ - ]
$1
对了,你的正则是不是复杂了点? 貌似取一个数字 /f(\d)/ 多位数字 /f(\d+)/ 就够了。

嗯 是啊 后面的?是尽量少匹配的意思 呵呵
+? 是表示1个或多个之前的表达式 ,非贪婪模式
举个例子来说
"abb323".gsub(/(\d+)/)
--->323
"abb323".gsub(/(\d+?)/)
--->3
match="azc13ddf429ssf777sse222xxf333"=~/f(d+?)/中match才是MatchData对象
str="azc13ddf429ssf777sse222xxf333"
str.gsub(/f\d+/){|match|
  puts match.match(/\d+/)
}
str="azc13ddf429ssf777sse222xxf333"
f=""
str.gsub(/f\d+/) { |match|
  f=f+ match.match(/\d+/).to_s
}
puts f