2014-11-22 94 views
3

在Ruby中,如何拆分字符串(如"John Doe+123456"),以便我可以在"+"之前和之後使用兩個變量?在Ruby中的正則表達式使用特殊字符

我剛從Ruby開始,但似乎無法獲得諸如"+"等特殊字符的配合。

作爲一個說明,我對編程並不陌生,只是Ruby。

回答

5

如果你已經知道你總是分裂在相同的字符,你可以提供的字符作爲一個字符串:

> "John Doe+123456".split('+') # no regular expression needed 
    => ["John Doe", "123456"] 

,或者如果你必須使用正則表達式,然後逃離+與一個\

> "John Doe+123456".split(/\+/) # using a regular expression; escape the + 
    => ["John Doe", "123456"] 

最後並非最不重要的,這裏是另一種方式來做到這一點:

> "John Doe+123456".scan(/[^+]+/) # find all sequences of characters which are not a + 
    => ["John Doe", "123456"] 
+0

問題作者的澄清:'+'是正則表達式語法的一部分,爲了直接使用它,作爲一個符號本身,您應該像'\ +'一樣轉義它。 UPD:已經存在:D – 2014-11-22 23:40:27

+0

最後,使用'scan'並不是一種現實的方式來處理字符串,因爲split('+')'存在並且更優雅。 – 2014-11-23 05:38:27

+0

在這種情況下是的,但我想提到它,因爲在需要分析時瞭解'scan'是很好的事情。 – Tilo 2014-11-23 22:34:11

3

除非你的字面意思是字符串+之前的字符串的最後一個字符,並且緊跟在它之後的第一個字符,否則用分隔符作爲其參數的.split方法很容易分割字符串。

> string = "John Doe+123456" 
> string.split('+') 
=> ["John Doe", "123456"] 
相關問題