C# Regex.Split 与 JavaScript 的工作方式不同
C# Regex.Split is working differently than JavaScript
我正在尝试将 this long JS regex 转换为 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 中的很多问题都只涉及相对简单的表达式,所以我找不到错误。
我错过了什么?
你的正则表达式是错误的,你不应该以 '/'
或 '/g'
开始和结束你在构造函数中指定了一个字符串,而不是 JavaScript 正则表达式(带有'/ /'句法。)。这是一个 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);
我正在尝试将 this long JS regex 转换为 C#。
下面的JS代码给出了从["","常","","に","","最新","、","最高"...]
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 中的很多问题都只涉及相对简单的表达式,所以我找不到错误。
我错过了什么?
你的正则表达式是错误的,你不应该以 '/'
或 '/g'
开始和结束你在构造函数中指定了一个字符串,而不是 JavaScript 正则表达式(带有'/ /'句法。)。这是一个 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);