Regex.Split 特定字符
Regex.Split on specific characters
我试图让我的字符串在任何 Non Word Characters (\W)
上拆分,包括 spaces
但 不 包括这些字符:.
、_
、$
。我也试图 keep Regex.Split
除了 for spaces
的任何定界符
我该怎么做?我读过很多问题,但没有任何意义。这是我的最新代码:
string[] result = Regex.Split (source, @"(\W[^(.|_|#|$)])");
编辑:
这里有一个例子
using System.Text;
我想要:
using
_System.Text
_;
(当前)结果是:
</code> _ <code>
_ using
_ System.Text
_ ;
_
(?!\.|#|_|$|\s)(\W)|\s+
尝试 this.A lookahead
将确保它不会被这些字符拆分。
您可以使用以下特定于 .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+
- 使用比环视更有效的 character class subtraction,因为它利用了 .NET 正则表达式引擎的所有优化。 [\W-[._$#\s]]
表示 任何非单词字符,不包括 .
、_
、$
、#
、whitespace
.
我试图让我的字符串在任何 Non Word Characters (\W)
上拆分,包括 spaces
但 不 包括这些字符:.
、_
、$
。我也试图 keep Regex.Split
除了 for spaces
我该怎么做?我读过很多问题,但没有任何意义。这是我的最新代码:
string[] result = Regex.Split (source, @"(\W[^(.|_|#|$)])");
编辑:
这里有一个例子
using System.Text;
我想要:
using
_System.Text
_;
(当前)结果是:
</code> _ <code>
_ using
_ System.Text
_ ;
_
(?!\.|#|_|$|\s)(\W)|\s+
尝试 this.A lookahead
将确保它不会被这些字符拆分。
您可以使用以下特定于 .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+
- 使用比环视更有效的 character class subtraction,因为它利用了 .NET 正则表达式引擎的所有优化。 [\W-[._$#\s]]
表示 任何非单词字符,不包括 .
、_
、$
、#
、whitespace
.