簡體   English   中英

正則表達式拆分為特定字符

[英]Regex.Split on specific characters

我正在嘗試將我的字符串拆分為任何Non Word Characters (\\W)包括spaces包括以下字符: . _$ 還我試圖保持任何分隔符Regex.Split 除了 spaces

我該怎么做? 我讀過很多問題,但這沒有道理。 這是我的最新代碼:

string[] result = Regex.Split (source, @"(\W[^(.|_|#|$)])");

編輯:

這里的一個例子

      using System.Text;

我想要 :

using _ System.Text _ ;

(當前)結果是:

_ _ using _ System.Text _ ; _

您可以使用以下特定於.NET的[\\W-[._$#\\s]])|\\s+正則表達式,並利用C#LINQ刪除空數組項:

var txt = "      using System.Text;";
var splts = Regex.Split(txt, @"([\W-[._$#\s]])|\s+").Where(s => s != String.Empty).ToArray(); 

輸出:

在此處輸入圖片說明

正則表達式- [\\W-[._$#\\s]])|\\s+ -使用字符類減法 ,它比環顧四周的效率更高,因為它利用了.NET regex引擎的所有優化功能。 [\\W-[._$#\\s]]表示除之外的任何非單詞字符. _$#whitespace

(?!\.|#|_|\$|\s)(\W)|\s+

試試看, lookahead將確保它不會被那些字符分開。

暫無
暫無

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

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