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

Ruby中带有特殊字符的正则表达式,ruby,regex,string,Ruby,Regex,String,在Ruby中,如何拆分一个字符串,例如“John Doe+123456”,这样我就可以有两个变量,其字符在“+”之前和之后 我今天刚开始使用Ruby,但我似乎无法获得像“+”这样的特殊字符来配合 请注意,我对编程并不陌生,只熟悉Ruby。如果您已经知道您总是在同一个字符上拆分,您可以将该字符作为字符串提供: > "John Doe+123456".split('+') # no regular expression needed => ["John Doe", "123

在Ruby中,如何拆分一个字符串,例如
“John Doe+123456”
,这样我就可以有两个变量,其字符在
“+”
之前和之后

我今天刚开始使用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
方法在ruby中拆分字符串很容易,该方法将分隔符作为其参数

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

对问题作者的澄清:
+
是正则表达式语法的一部分,为了从字面上将其用作符号本身,您应该像
\+
一样对其进行转义。UPD:已经存在:D最后一种,使用
scan
处理字符串不是一种现实的方法,因为
split(+')
存在,而且处理起来更优雅。在本例中,是的,但我想提一提,因为在需要解析时了解
scan
。。