在Ruby中,如何拆分字符串(如"John Doe+123456"
),以便我可以在"+"
之前和之後使用兩個變量?在Ruby中的正則表達式使用特殊字符
我剛從Ruby開始,但似乎無法獲得諸如"+"
等特殊字符的配合。
作爲一個說明,我對編程並不陌生,只是Ruby。
在Ruby中,如何拆分字符串(如"John Doe+123456"
),以便我可以在"+"
之前和之後使用兩個變量?在Ruby中的正則表達式使用特殊字符
我剛從Ruby開始,但似乎無法獲得諸如"+"
等特殊字符的配合。
作爲一個說明,我對編程並不陌生,只是Ruby。
如果你已經知道你總是分裂在相同的字符,你可以提供的字符作爲一個字符串:
> "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"]
除非你的字面意思是字符串+
之前的字符串的最後一個字符,並且緊跟在它之後的第一個字符,否則用分隔符作爲其參數的.split
方法很容易分割字符串。
> string = "John Doe+123456"
> string.split('+')
=> ["John Doe", "123456"]
問題作者的澄清:'+'是正則表達式語法的一部分,爲了直接使用它,作爲一個符號本身,您應該像'\ +'一樣轉義它。 UPD:已經存在:D – 2014-11-22 23:40:27
最後,使用'scan'並不是一種現實的方式來處理字符串,因爲split('+')'存在並且更優雅。 – 2014-11-23 05:38:27
在這種情況下是的,但我想提到它,因爲在需要分析時瞭解'scan'是很好的事情。 – Tilo 2014-11-23 22:34:11