这里有一个例子:
问题是,我不想在结果中包含“+”。我希望结果为“subtext”,不要有“+”。s="abcd+subtext@example.com"
s.match(/+[^@]*/)
结果 => "+subtext"
您可以在正则表达式中使用括号来创建匹配组:
s="abcd+subtext@example.com"
s =~ /\+([^@]*)/ && $1
=> "subtext"
您可以使用正向预测断言,我相信其写法如下:
s.match(/(?<=\+)[^@]*/)
< p > < em > 编辑 :我刚注意到这是一个关于Ruby的问题,我不知道这个功能是否在Ruby中(我自己不是Ruby程序员)。 如果是,您可以使用它; 如果不是...我会删除这个。
我不是很熟悉Ruby,但如果你在想要匹配的部分周围添加捕获符号,就应该能够运行。例如:\+([^@]*)
你可以通过Rubular测试这些功能。这个具体匹配可以在这里找到:http://www.rubular.com/r/pqFza9jlmX
s[/\+([^@]*)/, 1]
。 - mckeed