2011-04-26 72 views

回答

22

preg_match_all Ruby中相當於是String#scan,就像這樣:

在PHP:

$result = preg_match_all('/some(regex)here/i', 
      $str, $matches); 

和紅寶石:

result = str.scan(/some(regex)here/i) 

result現在包含一系列匹配項。

而且在Ruby中的等價物preg_replaceString#gsub,就像這樣:

在PHP:

$result = preg_replace("some(regex)here/", "replace_str", $str); 

和紅寶石:

result = str.gsub(/some(regex)here/, 'replace_str') 

result現在包含了新的字符串替換文字。

0

應接近爲的preg_match

"String"[/reg[exp]/] 
3

有關的preg_replace你會使用string.gsub(regexp, replacement_string)

"I love stackoverflow, the error".gsub(/error/, 'website') 
# => I love stack overflow, the website 

的字符串也可以是一個變量,但你可能已經知道了。如果你使用gsub!原始字符串將被修改。 在http://ruby-doc.org/core/classes/String.html#M001186

更多信息有關preg_match_all你會使用string.match(regexp) 這會返回一個MatchData對象(http://ruby-doc.org/core/classes/MatchData.html)。

"I love Pikatch. I love Charizard.".match(/I love (.*)\./) 
# => MatchData 

或者你可以使用string.scan(regexp),它返回一個數組(這是你在找什麼,我認爲)。

"I love Pikatch. I love Charizard.".scan(/I love (.*)\./) 
# => Array 

比賽:http://ruby-doc.org/core/classes/String.html#M001136

掃描:http://ruby-doc.org/core/classes/String.html#M001181

編輯:小李的回答看起來更整潔比我...也許應該批准他。