1
<%= @contact.foo_help %>

番号IDとタイトル(間にスペースを入れて)を出力します。例:29292これはタイトルです。番号が欲しいだけです。常に同じ桁数になるとは限らず、タイトルに数字を使用することもあります。

最初のスペースを空けてからすべてをgsubするのが最も簡単な方法だと思っていましたが、このフレームワークには2つの弱点があり、構文を正しく理解できません。助けてください

<%= @contact.foo_help.gsub( \s ' ')  %>
4

3 に答える 3

7
@contact.foo_help.gsub(/\s.+/, '')

スペースの後に 1 つ以上の任意の文字が続くものと一致し、空の文字列に置き換えられます。

Rubular は、この種のことには素晴らしいhttp://rubular.com/

于 2012-05-11T04:09:49.253 に答える
5

String#[]最も簡単でクリーンなことは、正規表現引数で使用することだと思います:

<%= @contact.foo_help[/\d+/] %>

例えば:

>> '29292 This Is A Title.'[/\d+/]
=> "29292"
>> '29292 This 9999 Is A Title.'[/\d+/]
=> "29292"

少し締めて、正規表現を文字列の先頭に固定することもできます。

<%= @contact.foo_help[/\A\d+/] %>

しかし、余分なノイズが必要かどうかはわかりません。

基本的な考え方は、不要なものをつかんで捨てるのではなく、言いたいことを言うことです(「文字列の先頭にある数字を教えてください。数字で始まることがわかっています」)。

于 2012-05-11T04:07:45.993 に答える
5

これを試して

str = "29292 This Is A Title"
number = str.to_i
=> 29292
number.class
=> Fixnum

'29292 555 This Is A Title 8989'.to_i
=> 29292

これがあなたを助けることを願っています。

于 2012-05-11T04:19:16.417 に答える