我在 JS 中有一個正則運算式,它在 C# 中不會產生相同的結果:
//javascript
var password = "pass";
var arrPws = password.split(/\s*/);
給我一個 String[] 結果,如下所示
但是當我嘗試在 C# 中重現它時,我得到的輸出略有不同:
//c#
using System.Text.RegularExpressions;
var password = "pass";
var arrPwd = Regex.Split(password,@"\s*");
C# 代碼在開頭和結尾添加了一個額外的“”,如下
所示
如何在 C# 中消除額外的“”?
uj5u.com熱心網友回復:
為了快速修復 .NET 代碼,您可以拆分(?<=.)\s*(?=.):
using System.Text.RegularExpressions;
var password = "pass";
var arrPwd = Regex.Split(password,@"(?<=.)\s*(?=.)");
foreach(var item in arrPwd)
{
Console.WriteLine(item.ToString());
}
這列印:
p
a
s
s
您看到的問題與\s*. 在 .NET 的正則運算式引擎上,\s*匹配輸入開頭和結尾處的零寬度標記,但在 JavaScript 引擎中不匹配。
如果您只想要字串中所有字符的陣列,請使用string#ToCharArray().
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/427910.html
標籤:javascript C# 。网 正则表达式 剃刀
