这个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!
还有其他想法吗?
答案 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}");