Ruby:关于正则表达式的帮助

时间:2014-07-15 08:06:17

标签: ruby regex

我有这么大的字符串:

Name : totoAge : 18Country : Unknown

我只想采取" toto"," 18"和"未知"。 我试过像Name:(。+ $)这样的东西只有" toto"但是没有用。 有什么想法吗?

3 个答案:

答案 0 :(得分:0)

这可能会帮助你。

s = 'Name : totoAge : 18Country : Unknown'
temp = s.split /(?=[A-Z])/
result = temp.each {|d| r << d.split(':').last.strip}
final_output = result.reject(&:empty?)

你有结果。如果您需要更多帮助,请告诉我。

答案 1 :(得分:0)

终于找到了一个模式。我想你正在寻找这个,

(?<=:\s)\w+(?=$)|(?<=:\s)[a-z0-9]+

DEMO

OR

如果您想在模式中提及NameAgeCountry,请尝试以下正则表达式

(?<=Name : |Age : |Country : )[A-Z]?[a-z0-9]+

DEMO

答案 2 :(得分:0)

我认为最好的方法如下:

我们说,您可以使用s = "Name : totoAge : 18Country : Unknown"

姓名:s[/Name : (\w*)/,1][0..-4]

年龄:s[/Age : (\w*)/,1][0..-8]

国家/地区:s[/Country : (\w*)/,1]

这比其他方法更好,因为它们使用大写,数字等来分割字符串,而Name,Country等可能包含大写,数字等。

希望有所帮助:)