CoffeeScript 使用 Heregexes

2022-06-29 17:11 更新

使用 Heregexes

問題

你需要寫一個復雜的正則表達式。

解決方案

使用CoffeeScript的“heregexes”——可以忽視內(nèi)部空白字符并可以包含注釋的擴展正則表達式。

pattern = ///
  ^\(?(\d{3})\)? # 采集區(qū)域代碼,忽略可選的括號
  [-\s]?(\d{3})  # 采集前綴,忽略可選破折號或空格
  -?(\d{4})      # 采集行號,忽略可選破折號
///
[area_code, prefix, line] = "(555)123-4567".match(pattern)[1..3]
# => ['555', '123', '4567']

討論

通過打破復雜的正則表達式和注釋重點部分,它們變得更加容易去辨認和維護。例如,現(xiàn)在這是一個相當明顯的做法去改變正則表達式以容許前綴和行號之間存在可選的空間。

heregexes 中的空白字符

空白字符在heregexes中是被忽視的——所以如果要為ASCII空格匹配字符,你應(yīng)該怎么做呢?

我們的解決方案是使用@\s@字符組,它能夠匹配空格,制表符和換行符。假如你只想匹配一個空格,你需要使用\X20來表示字面上的ASCII空格。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號