在#之前查找并替换所有字符

时间:2016-07-08 01:03:08

标签: ruby-on-rails

我有一个包含字符串的数组。每个字符串如下所示:

Debit Card Purchase 06/14 06:09p #1936 UIC CAMPUS PRKG ADMIN CHICAGO IL 16168

我想删除所有之前"#"字符以仅保留UIC CAMPUS PRKG ADMIN CHICAGO IL 16168作为名称。如何使用正则表达式脚本在rails中执行此操作?

如果我可以,我想获得UIC CAMPUS PRKG ADMIN但不确定如何区分这部分但不确定是否可能。寻找有关这方面的建议。

2 个答案:

答案 0 :(得分:1)

str = "Debit Card .... PRKG ADMIN CHICAGO IL 16168"

您可以通过

提取第二部分

str = str.sub(/.*#\d+\s*/, '') = "UIC CAMPUS PRKG ADMIN CHICAGO IL 16168"

或者你可以在字符串上使用split

str = str.split(/#\d+\s*/).last = "UIC CAMPUS PRKG ADMIN CHICAGO IL 16168"

然后删除城市,州和邮编

str = str.sub(/(\s*\w+\s*){2}\d+$/,'') = "UIC CAMPUS PRKG ADMIN"

答案 1 :(得分:0)

也许是这样的?

# (s = 'Debit ... IL 16168')
s.sub /.*#\d+ /, '' # => "UIC CAMPUS PRKG ADMIN CHICAGO IL 16168"

然后,您可以将其分配给另一个变量或使用s.sub! /.../, ''