JS通過Regex刪除空行的方法

來源:互聯網
上載者:User

   我們的目標是要刪除文本中的空行,可能一行也可能是多行。

  所以,我的操作如下:

  在此,我們匹配空行用的是

  (\r\n)*

  這樣,就可以匹配多個空行,同時用null來替代,就可以實現刪除空行。此方案是基於對\r和\n的使用。

  以前在網上看到一種實現是:

  \n[\s| ]*\r

  匹配之後,用null替代,也可以實現刪除空行,效果如:

  兩種方案都能實現相同的效果。

  如果有其他的不同理解,請發表評論,大家共同進步。

  我又做了以下測試,如:

  僅用了

  \n\r

  就完全實現了刪除所有的空行,因為在每一個空行的開頭和結尾都是

  \n\r

  所以,刪除了上一行之後,當前行還有一個\n\r,同樣能夠匹配上,所以,還要在做替代操作。這樣,就可以刪除所有的空行了。

  那,如果是

  \r\n,效果如何呢?

  我又做了一下測試,效果如:

  這個就不是我們想要的結果.為什麼呢?

  我想,我們可以這樣理解,

  C:\Program Files\Common Files\Relive.dll

  C:\Program Files\Common Files\svchost.exe

  C:\Program Files\Internet Explorer\msvcrt.bak

  C:\Program Files\Internet Explorer\msvcrt.dll

  C:\Program Files\Internet Explorer\msvcrt.ebk

  C:\WINNT\system32\drivers\npf.sys

  C:\WINNT\system32\wpcap.dll

  C:\WINNT\system32\Packet.dll

  C:\WINNT\system32\WanPacket.dll

  C:\Documents and Settings\User name\Local Settings\Temp\wmso.exe

  C:\Documents and Settings\User name\Local Settings\Temp\BCG5.tmp

  這個是原始文本,其實,在我們進行文本處理的時候,我們可以這樣把空行,用

  \r\n(斷行符號換行,先斷行符號,後換行)

  來替換掉.文本就是:

  C:\Program Files\Common Files\Relive.dll\r\n\r\nC:\Program Files\Common Files\svchost.exe\r\n\r\nC:\Program Files\Internet Explorer\msvcrt.bak\r\nC:\Program Files\Internet Explorer\msvcrt.dll\r\n\nC:\Program Files\Internet Explorer\msvcrt.ebk\r\n\r\n\r\n\r\nC:\WINNT\system32\drivers\npf.sys\r\nC:\WINNT\

system32\wpcap.dll\r\nC:\WINNT\system32\Packet.dll\r\nC:\WINNT\system32\WanPacket.dll\r\n\r\nC:\Documents and Settings\User name\Local Settings\Temp\wmso.exe\r\nC:\Documents and Settings\User name\Local Settings\Temp\BCG5.tmp\r\n\r\n\r\n

  這一段文本是一個整體,沒有斷行符號,沒有空隙和間隔,這是我們正在處理的文本,只不過斷行符號換行是不可見字元,所以就不能看到,但是還是存在的.

  所以,在處理的時候才會出現我們上面的情況.

  有此,我們可以理解為什麼

  用\r\n匹配和替代後,

  所有的\r\n都沒有了,所以,文本,就成為了一個串連的純字元文本了.

  但是

  \n\r

  替換後,

  中間的所有的\n\r都替代掉了,\r(\n\r……\n\r)\n,中間的部分都替代掉了。所以就剩最後的一個\r\n.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.