比賽和第二個字符的第一個字符圖案比方說,我有以下字符串:正則表達式替換的帽
"a test-eh'l"
我想爲每個字的開始。一個字可以用空格,撇號,連字號,斜線,經過一段時間,等分開所以我希望字符串變成這樣:
"A Test-Eh'L"
我不是太擔心得到第一從gsub調用中大寫字母,因爲事後很容易做到這一點。但是,當我使用IRB和匹配方法時,我似乎只得到一個結果。當我使用掃描時,它會收集匹配,但問題是我無法真正做到,因爲我需要替換原始字符串的內容。
這是我到目前爲止有:
"a test-eh'a".scan(/[\s|\-|\'][a-z]/)
=> [" t", "-e", "'a"]
"a test-eh'a".match(/[\s|\-|\'][a-z]/)
=> #<MatchData " t">
然後,如果我使用GSUB嘗試的模式:
"a test-eh'a".gsub(/[\s|\-|\'][a-z]/, $1)
TypeError: can't convert nil into String
在JavaScript中,我通常會使用括號,而不是放在方括號內的前部。但是,這樣做時我在掃描調用中沒有得到正確的結果。
"a test-eh'a".scan(/(\s|\-|\')[a-z]/)
=> [[" "], ["-"], ["'"]]
"a test-eh'a".gsub(/(\s|\-|\')[a-z]/, $1)
=> "a'est'h'"
任何幫助,將不勝感激。
可以在替換字符串一樣使用1捕獲組:''\ 1''。 – 2012-02-01 14:59:00