Ruby中带有特殊字符的正则表达式
在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
“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
。。