我有这么大的字符串:
Name : totoAge : 18Country : Unknown
我只想采取" toto"," 18"和"未知"。 我试过像Name:(。+ $)这样的东西只有" toto"但是没有用。 有什么想法吗?
答案 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]+
OR
如果您想在模式中提及Name
,Age
,Country
,请尝试以下正则表达式
(?<=Name : |Age : |Country : )[A-Z]?[a-z0-9]+
答案 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等可能包含大写,数字等。
希望有所帮助:)