亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將程序的輸出流轉換為數組

將程序的輸出流轉換為數組

慕哥9229398 2021-06-22 17:01:50
我有一個包含可用打印機列表的程序的輸出流,我想將其轉換為數組。這是我的標準輸出:OneNote                        Microsoft XPS Document Writer  Microsoft Print to PDF         Fax                            我正在尋找一種解決方案,它會給我:['OneNote', 'Microsoft XPS Document Writer', 'Microsoft Print to PDF', 'Fax']我試過了stdout.split('\n'),但它變成了[ 'OneNote                        \r\r',  'Microsoft XPS Document Writer  \r\r',  'Microsoft Print to PDF         \r\r',  'Fax                            \r\r', '\r\r', '']然后我試了stdout.split('\r\r\n')一下,結果變成了[ 'OneNote                        ',  'Microsoft XPS Document Writer  ',  'Microsoft Print to PDF         ',  'Fax                            ', '', '']現在我可以從字符串的末尾刪除空格,stdout.split('\r\r\n').map(printer => printer.trim())但我仍然需要過濾掉最后兩個空字符串,所以我想知道有沒有更好/優雅的方法來解決這個問題?stdout.split('\r\r\n')  .map(printer => printer.trim())  .filter(printer => Boolean(printer.length))
查看完整描述

1 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

您可以使用正則表達式 -


input.trim().split(/\s*[\r\n]+\s*/)

看看它在下面這個完整的程序中工作 -


const input = 

`

OneNote                        


Microsoft XPS Document Writer  


Microsoft Print to PDF         


Fax                            

`


const output =

  input.trim().split(/\s*[\r\n]+\s*/)

  

console.log(output)

// [

//   "OneNote",

//   "Microsoft XPS Document Writer",

//   "Microsoft Print to PDF",

//   "Fax"

// ]

正則表達式針對由可選空格包圍的任何回車\r和/或換行符\n??梢岳斫鉃椤?/p>

  • \s* - 零個或多個空格,后跟

  • [\r\n]+- 一個或多個\ror \n,然后是

  • \s* - 零個或多個空格


查看完整回答
反對 回復 2021-06-24
  • 1 回答
  • 0 關注
  • 244 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號