這個JavaScript正則表達式的C#等價物是什麼?C#等價於JS RegEx表達式
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!
任何其他的想法?
這個JavaScript正則表達式的C#等價物是什麼?C#等價於JS RegEx表達式
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
匹配了很多比JavaScript的正則表達式更.NET正則表達式。
(除非你也想匹配包含非ASCII字母/數字的話,在這種情況下`@ 「(\ W)\ W *」 會更好。)
正如我的文章所編輯的,上面給出了結果:\ 1 \ 1 \ 1! –
在上面的代碼片段中用@「$ 1」替換@「\ 1」。 –
@Mr。史密斯:對,對不起。感謝您的提醒! –
var result = Regex.Replace(input, @"(?<x>\w)\w*", @"${x}");
所以你要將你不明白的東西轉換成你不明白的新東西。如何學習正則表達式的東西呢? –
即將到來的OP防禦:您需要相當多的關於不同的正則表達式的知識才能在諸如JS和.NET之類的大量不同的實現之間正確轉換它們。如果他剛剛將正則表達式複製到C#字符串中,結果會很微妙。 –
實際上,那段代碼用一個字符替換了字符串中的每個單詞。我不確定它將如何轉換爲C#,因爲C#中的RegEx.Replace()會簡單地替換您輸入的任何匹配項。使用「$ 1」是JavaScript特定的。 –