[英]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.