如何在任何给定的字符串中添加空格并保持N个字符?

Don*_* C. 1 ruby regex string

在使用正则表达式的Ruby中,我想修改一个给定的字符串,该字符串将短于或恰好为15个字符,因此通过添加空格,它始终为15个字符。

例如:

'apple' => 'apple(10 spaces here)'

'orange' => 'orange(9 spaces here)'

'fifteenspaceshi' => 'fifteenspaceshi'
Run Code Online (Sandbox Code Playgroud)

我已经尝试过了,并且可以正常工作,但是正则表达式会提供更优雅的解决方案吗?

x = 'apple'

x = x + ' '*(15 - x.length)
Run Code Online (Sandbox Code Playgroud)

Ser*_*sev 9

无需涉及正则表达式

"apple".ljust(15) # => "apple          "
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,`ljust`也接收占位符,例如`“ apple” .ljust(15,'_')` (4认同)

Jay*_*sey 5

我认为根据问题的复杂性,Sergio的答案是最好的,但是sprintf如果以后需要更复杂的格式,也可以使用字符串格式():

"%-15s" % "apple" # => "apple          "
Run Code Online (Sandbox Code Playgroud)

阅读有关模式以及如何读取/编写模式的文档