JS RegEx 表达式的 C# 等效项

标签 c# javascript regex

这个 JavaScript 正则表达式的 C# 等价物是什么?

str.replace(/(\w)\w*/g, "$1");

Javascript 输入 + 结果(所需):

Input:  I like pie!
Result: i l p!

C# 输入 + 结果(使用下面发布的 Tim 版本):

Input:  I like pie!
Result: \1 \1 \1!

还有其他想法吗?

最佳答案

resultString = Regex.Replace(subjectString, "([A-Z0-9_])[A-Z0-9_]*", "$1", RegexOptions.IgnoreCase);

此更改是必要的,因为 \w 在 .NET 正则表达式中比在 JavaScript 正则表达式中匹配得更多。

(除非您还想匹配包含非 ASCII 字母/数字的单词,在这种情况下 `@"(\w)\w*"会更好。)

关于JS RegEx 表达式的 C# 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6678969/

相关文章:

javascript - 为什么这个 JS 会触发部分呈现在一页上而不是另一页上的表单?

javascript - 为什么 Javascript 字符串替换会颠倒从右到左语言的词序?

c# - .NET 多个 gmail 帐户与 2 个网络浏览器控件

c# - 如何在左侧或右侧以不同比例向 MSChart 添加更多 Y 轴

javascript - Google Chrome 扩展可折叠菜单

javascript - JavaScript 中奇怪的正则表达式行为

python - Scrapy:规则SgmlLinkExtractor概念

javascript - 我是错觉了,还是 JS RegExp 支持可选的重复范围?

c# - 在 C# .NET Web 服务中保留对象

c# - 带有 IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS 的 DeviceIoControl - C#