Ruby中的正则表达式,带有特殊字符

时间:2014-11-22 23:34:44

标签: ruby regex string

在Ruby中,如何分割"John Doe+123456"之类的字符串,以便我可以在"+"之前和之后有两个字符变量?

我今天刚开始使用Ruby,但我似乎无法让"+"之类的特殊字符合作。

作为一个注释,我不是编程的新手,只是Ruby。

2 个答案:

答案 0 :(得分: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"]

答案 1 :(得分:3)

除非你的字面意思是,+之前的字符串的最后一个字符以及紧跟在它之后的第一个字符,使用.split方法在ruby中拆分字符串很容易,它将分隔符作为其参数。

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