簡體   English   中英

Ruby是否有類似於Emacs align-regexp的方法?

[英]Does Ruby have a method similar to Emacs align-regexp?

尋找一種可對字符串數組進行操作的Ruby方法,並根據作為參數給出的正則表達式將它們對齊。 Emacs有一個稱為align-regexp的defun,當在緩沖區的某個區域上進行操作時,它將以交互方式進行此操作。

這是align-regexp的emacs文檔字符串的一部分。

例如,假設您有一個電話號碼列表,並希望將它們對齊,以使左括號對齊:

Fred (123) 456-7890
Alice (123) 456-7890
Mary-Anne (123) 456-7890
Joe (123) 456-7890

沒有預定義的規則可以處理此問題,但是您可以使用REGEXP(例如“(”)輕松完成此操作。您要做的就是標記該區域,調用“ align-regexp”並鍵入該正則表達式。結果:

Fred      (123) 456-7890
Alice     (123) 456-7890
Mary-Anne (123) 456-7890
Joe       (123) 456-7890
lines = [
  'Fred (123) 456-7890',
  'Alice (123) 456-7890',
  'Mary-Anne (123) 456-7890',
  'Joe (123) 456-7890',
]
rows = lines.map { |line| line.partition('(') }
pos = rows.map { |row| row[0].size }.max
puts rows.map { |row| row[0] = row[0].ljust(pos); row.join }

輸出:

Fred      (123) 456-7890
Alice     (123) 456-7890
Mary-Anne (123) 456-7890
Joe       (123) 456-7890

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM