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

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

正則表達式:僅在后面跟有任何字符時替換空格,否則修剪

正則表達式:僅在后面跟有任何字符時替換空格,否則修剪

郎朗坤 2023-07-29 15:55:53
我正在嘗試匹配然后替換單詞之間的空格。https://regex101.com/r/edlsbU/1/嘗試過:([a-z].)(\s+) 但是,無法正常工作。嘗試過:\w+\s\w.*嘗試過:\w+(\s)(?=\w)<--有條件。編輯: ^\s*(?=[a-zA-Z0-9'/\\&.-])([a-zA-Z0-9'/\\&.\s-]{3,})(?<=\S)[ \s]*$但是,不修剪。預期的:viva后面跟著一個空格,將其修剪掉。viva la后跟一個空格和一個新字符,將空格替換為+。我試圖為搜索引擎參數準備文本,并意識到當您執行搜索查詢時:?q=,您確實將單詞傳遞為:?q=word+word+word。所以,我想嘗試編寫一個正則表達式來檢查一個單詞是否有空格并且后面跟著另一個單詞,如果后面沒有另一個單詞,則空格將被修剪。但是,如果在空格后面跟著另一個單詞,則單詞之間會添加一個 +。
查看完整描述

1 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

如果要替換單詞字符之間的空白字符并刪除所有其他空白字符,可以使用捕獲組來查看匹配的內容,并使用回調進行替換。

(?<=\w)\s+(?=\w)|(\s+)

查看正則表達式演示

let regex = /(?<=\w)\s+(?=\w)|(\s+)/g

let result = [

  "viva",

  "Viva la via"

].map(s => s.replace(regex, (m, g1) => g1 ? '' : `+`))


console.log(result);


查看完整回答
反對 回復 2023-07-29
  • 1 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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