javascript - C# Regex.Split 的工作方式与 JavaScript 不同

标签 javascript c# regex cjk

我正在尝试转换 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 中的许多问题仅涉及相对简单的表达式,因此我找不到错误。

我错过了什么?

最佳答案

你的 RegEx 是错误的,你不应该以 '/''/g' 开始和结束你在构造函数中指定了一个字符串,而不是 JavaScript Regex (使用 '//' 语法。)。这是 Javascript 语法。

实际上,当您使用这样的字符串构造函数时,同样适用于 JavaScript:

var regex = new RegExp('//');//这将匹配 2 个斜线

关于javascript - C# Regex.Split 的工作方式与 JavaScript 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52157845/

相关文章:

javascript - Jquery:根据下拉列表的值启用/禁用对于动态生成的输入不起作用

javascript - 将事件附加到尚未创建的元素

C# 检查互联网连接

c# - 为什么忽略基类中声明的签名?

java - XML 中的通配 rune 件匹配

javascript - 从 Javascript 代码中隐藏 Excel 选项卡

javascript - 从 float 中提取小数点

c# - 如何在 C# 中找到应用程序在哪个屏幕上运行

regex - Visual Studio 代码 : How to automate a simple regex-find and replace?

c++ - 为什么正则表达式 "([a-z])((?!\\1)[a-z])"会匹配 C++11 中的字符串 "aa"?