2013-03-12 87 views
1

匹配字符串我有這個字符串:得到的紅寶石

"A man, a plan, a canal -- Panama" 

正則表達式:

/[^[^\w*]]/ 

所需要的結果是:

"AmanaplanacanalPanama" 

的問題:我不能得到該結果的字符串。這是我的代碼:

def palindromo(s) #s is a string 

    num_expr = /[^[^\w*]]/ 
    m = s.match(num_expr) 
    unless m 
    puts "no hubo concordancia" 
    exit 
    end 
    print "El string de la busqueda es: " 
    puts m.string # string donde se efectúa la búsqueda 
    print "La parte del string que concuerda con la busqueda es: " 

    puts m 

的代碼給了我這樣的結果:"A",我希望得到這個字符串: "AmanaplanacanalPanama"

+0

您需要首先清理代碼的格式,因爲你至少錯過了一個「結束」。 – iain 2013-03-12 04:59:50

+0

我已經把它清理得儘可能好,而當我注意到你的代碼中有製表符時。如果你打算和其他程序員相處,那麼我建議你設置你的Tab鍵來輸出空格! – iain 2013-03-13 15:21:25

回答

2
"A man, a plan, a canal -- Panama".gsub(/[^\w]/, "") == "AmanaplanacanalPanama" 
# => true 
+2

'[^ \ w]'可以縮短爲'\ W' – pguardiario 2013-03-12 05:19:04

+0

@pguardiario非常真實,很好抓:) http://zenspider.com/Languages/Ruby/QuickRef.html#regexen是一個有用的列表。 – iain 2013-03-12 05:20:39

1
puts "El string de la busqueda es: #{s}" 
puts s[/\W/] ? "La parte del string que concuerda con la busqueda es: #{s.gsub(/[^\w]/, "") }" : "no hubo concordancia" 
+0

我不知道你可以做[/ \ W /]',非常有趣。 +1 – iain 2013-03-12 18:33:17