[英]C# Regex.Split is working differently than JavaScript
我正在嘗試將這個長JS正則表達式轉換為C#。
下面的JS代碼給出了從["","常","","に","","最新","、","最高"...]
開始的數組中的29個項目
var keywords = /(\ |[a-zA-Z0-9]+\.[a-z]{2,}|[一-龠々〆ヵヶゝ]+|[ぁ-んゝ]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+)/g;
var source = '常に最新、最高のモバイル。Androidを開発した同じチームから。';
var result = source.split(keywords);
但是下面的C#代碼給出了 string[]
的非拆分單項 。
var keywords = @"/(\ |[a-zA-Z0-9]+\.[a-z]{2,}|[一-龠々〆ヵヶゝ]+|[ぁ-んゝ]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+)/g";
var source = @"常に最新、最高のモバイル。Androidを開発した同じチームから。";
var result = Regex.Split(source, keywords);
Stack Overflow中的許多問題僅涵蓋相對簡單的表達式,因此我無法找到錯誤。
我錯過了什么?
你的RegEx是錯誤的,你不應該以'/'
或'/g'
開頭和結尾你在構造函數中指定一個字符串,而不是JavaScript Regex(帶有'/ /'語法。)。 這是一個Javascript語法。
實際上,當您使用這樣的字符串構造函數時,同樣適用於JavaScript:
var regex = new RegExp('//');
//這將匹配2個斜杠
這是一個C#示例代碼
string keywords = @"(\ |[a-zA-Z0-9]+\.[a-z]{2,}|[一-龠々〆ヵヶゝ]+|[ぁ-んゝ]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+)";
string source = @"常に最新、最高のモバイル。Androidを開発した同じチームから。";
string [] res = Regex.Split(source, keywords);
string single = "";
foreach ( string str in res )
single += "'" + str + "',";
Console.WriteLine("{0}", single);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.