2014-11-21 162 views
0

我是新來的語言。正則表達式匹配紅寶石

我試圖提取所有字符,直到轉義字符(\ r)。

我試圖

text = "abcde\r" 

text.match(/(.*)(\r)/) 

我試着用GSUB和GSUB一樣!沒有任何工作。

+0

哪裏是你的代碼的其餘部分? – NullUserException 2014-11-21 18:45:12

+0

'\ r'不是「*轉義字符」,它是「*一個*轉義字符」。術語很重要。 – 2014-11-21 20:58:23

回答

0

您可以使用String#slice傳遞正則表達式和匹配來獲取。 1代表第一個(在這種情況下是唯一的)比賽。

text = "abcde\r" 
text.slice(/(.*)\r/, 1) 
=> "abcde" 
+0

謝謝!看起來我對irb終端有問題。它沒有打印輸出。 – JmG 2014-11-21 18:48:09

2

如果你碰巧處理從一個文件中的指定的情況下,你要刪除的行結束,您可以使用chopchomp。例如:

require 'pp' 

lines = [ 
    "hello", 
    "there\r", 
    "how\r\n", 
    "are you?" 
] 

lines.each do |line| 
    pp line 
    pp line.chomp 
    puts '---' 
end 

結果:

"hello" 
"hello" 
--- 
"there\r" 
"there" 
--- 
"how\r\n" 
"how" 
--- 
"are you?" 
"are you?" 
--- 
+0

小心使用'chop',因爲它會不加區分地刪除最後一個字符:''foo'.chop#=>「fo」'。 'rstrip'和'chomp'都是最常用的方法。 – 2014-11-21 21:00:57

+0

很酷。謝謝。這很有幫助 – JmG 2014-11-21 21:40:16