C#等效于JS RegEx表达式

时间:2011-07-13 12:35:47

标签: 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!

还有其他想法吗?

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

var result = Regex.Replace(input, @"(?<x>\w)\w*", @"${x}");