2012-10-07 166 views
3

我想同樣的超級簡單的正則表達式上Rubular.com和我的虛擬機的Linux使用Ruby 1.9.2我不知道我爲什麼我得到不同的輸出不同: VM:紅寶石正則表達式從Rubular

my_str = "Madam Anita" 
puts my_str[/\w/] 

此輸出:女士

上Rubular

它輸出:MadamAnita Rubular: http://www.rubular.com/r/qyQipItdes

我喜歡一些幫助。我卡在這裏。我將無法測試我的代碼爲hw1。

回答

4

不,它不是真的。它匹配「Madam」和「Anita」中的所有字符,但不匹配空格。您遇到的問題是my_str[/\w/]僅返回給定正則表達式的單個匹配項,而Rubular將突出顯示所有可能的匹配項。

如果你需要的所有事件,你可以這樣做:

1.9.3p194 :002 > "Madam Anita".scan(/\w+/) 
=> ["Madam", "", "Anita", ""] 
+1

改爲使用'\ w +'...空組通常不是很有用。 – nneonneo

+0

瞭解。謝謝 – frenesim

3

其實,\w比賽單個字符。 Rubular中的結果包含相鄰角色之間的空格,以告訴你這一點(儘管我希望他們也能使高光更明顯......)。與匹配\w+的輸出相比較,匹配兩個字符串(MadamAnita)。

+0

感謝您注意到這一點。我想更好地突出顯示。 – frenesim