簡體   English   中英

如何分割字符串保留空間和任意數量的\\ n字符

[英]How to split string preserving spaces and any number of \n characters

我想使用以下規則拆分字符串並創建一個集合:字符串應拆分為單詞。

1)如果字符串包含“ \\ n”,則應將其視為單獨的“ \\ n”單詞。
2)如果字符串包含多個'\\ n',則應將其視為比'\\ n'單詞更多的字符串。
3)字符串中不能有空格。 唯一的例外是,如果空格位於兩個\\ n之間,則可以忽略。

PS:我做了很多嘗試,使用字符串拆分,首先是拆分\\ n字符,然后創建了一個集合,不利的是,如果我連續有兩個\\ n,則無法在該集合中創建兩個偽單詞。 任何幫助將不勝感激。

在此處輸入圖片說明

反正有使用正則表達式來做到這一點?

看起來像作業。 因此,請閱讀\\b

應該為您設定正確的方向。

閱讀零寬度的斷言 使用它們,您可以定義\\s\\S之間的分隔位置,而無需實際匹配任何相鄰字符。

編輯:這是OP詢問這些構造的另一個問題

用這樣的正則表達式拆分:

(?<=[\S\n])(?=\s)

就像是:

var substrings = Regex.Split(input, @"(?<=[\S\n])(?=\s)");

這根本不會刪除任何空格,但這不是必需的,所以應該沒問題。

如果您確實希望刪除\\n之間的空格,則可以使用類似以下內容進行拆分:

(?<=[\S\n])(?=\s)(?:[ \t]+(?=\n))?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM