none
如何縮減連續多個換行符號? RRS feed

  • 問題

  • 一篇文章中每一段結尾有一個到數個不等的換行符號,例如:

    我用印象中的方式\n

    回頭問你是否有帶傘\n\n\n

    「印象中那裡有人。」\n\n\n\n\n

    卻看見你站在窗外的雨中\n\n

    當然換行符號是看不到的,只是舉例。

    我想用規則運算把連續2個以上的\n縮減成2個,用

    Regex.Replace(str, "[\n]{3,}", "\n\n");

    不太懂規則運算,這樣寫有的能縮減成2個,有的一長串的\n不動如山,請教先進賢拜,正確的規則運算該怎麼寫?

    感謝不吝指點。
    2017年4月10日 上午 03:38

解答

所有回覆

  • 看起來正常,你要檢查好你的 str。


    理直氣和,切記。

    個人

    • 已標示為解答 a670334 2017年4月11日 上午 04:00
    2017年4月10日 上午 05:23
  • 我做了一個測試

    string str = "中QQQQQQQQQ QQQQQ QQQQQQQQQQQQ文";
    str = Regex.Replace(str, "Q{3,}", "QQ");

    結果連續的Q可以被置換成QQ。也就是我寫的規則運算沒有錯,但那一行將連續的\n置換成\n\n卻被忽略。像這樣

    換到最後的位置就能正確執行。

    這兩個不同位置是有什麼差別嗎?

    感謝先進指點。我嘗試加入Dump(),卻不能使用,我這是WPF應用程式專案,是需要引進哪個命名空間或加入參考?

    2017年4月10日 下午 01:25
  • http://www.linqpad.net

    你可以用 linqpad 一行一行的 .dump(); 看輸出內容,就知道差異了。


    理直氣和,切記。

    個人

    2017年4月10日 下午 01:36
  • 非常感謝介紹這個工具,我將好好了解。
    2017年4月11日 上午 04:00