1
A
回答
3
開始做這幾樣在.NET事物的方法是使用MatchEvaluator參數的所有單詞:
string pattern = @"<(\w*)";
string replaced = Regex.Replace(line, pattern,
x => "<" + x.Groups[1].ToString().ToUpper());
這寫道:當你發現正規表達,用第一組大寫替換它。
+0
會使用'Groups [0]'更多作爲一般方法適當?有些正則表達式在它們中沒有分組。 – 2010-11-09 01:45:28
1
你的Perl代碼中有一些錯誤。在Perl和.NET正則表達式中,\(
和\)
與文字字符(
和)
相匹配;要將括號用作分組操作符,請將反斜槓關閉。另外,\u
不是小寫匹配,它titlecases(通常與大寫相同)接下來的字符。你在想什麼是\L
,它會將所有字符縮小到字符串末尾或\E
,以先到者爲準。
在Perl,\U
,\L
和如不是一個真正的正則表達式的功能,他們是一個字符串的功能,如比較常見的轉義序列:\n
,\t
等。他們在冗餘正則表達式文檔上市因爲它們在正則表達式替換中特別有用。 C#沒有等效對他們來說,無論是在字符串文字或正則表達式類,但作爲@steinar指出的,它確實有MatchEvaluator和(因爲.NET 3.0)lambda表達式:
string s = "ABC<XYZ!";
Console.WriteLine(Regex.Replace(s, @"<(\w+)", m => m.Value.ToLower()));
輸出:
ABC<xyz!
編輯:括號在我的例子中並不是真的需要,但我留下來證明它們作爲分組操作符的正確用法。我也將原來的\w*
更改爲\w+
;當你唯一的目標是改變單詞字符的情況時,沒有與零字符匹配的點。
相關問題
- 1. 正則表達式小寫
- 2. 正則表達式大寫到小寫
- 3. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
- 4. 正則表達式(正則表達式)
- 5. 正則表達式(正則表達式)
- 6. .NET正則表達式多行幫助 - 正則表達式
- 7. .Net正則表達式(正則表達式)
- 8. 寫正則表達式表達的java
- 9. .NET正則表達式 - 塊'%'
- 10. .NET正則表達式
- 11. 在.NET正則表達式
- 12. 的.htaccess重寫正則表達式的正則表達式
- 13. 小寫正則表達式url
- 14. JavaScript的正則表達式從小寫
- 15. 用正則表達式計算小寫
- 16. 正則表達式區分大小寫
- 17. 編寫正則表達式
- 18. 撰寫正則表達式?
- 19. 寫入正則表達式
- 20. 小vim正則表達式
- 21. 正則表達式表達
- 22. 正則表達式表達
- 23. PHP-MySQLi替換爲正則表達式/正則表達式/正則表達式
- 24. 正則表達式正則表達式返回的值正則表達式
- 25. 正則表達式正則表達式模仿正則表達式
- 26. 檢查表達式是否與正則表達式匹配
- 27. 正則表達式否定
- 28. 否定正則表達式
- 29. 正則表達式 - 它們是相同的正則表達式?
- 30. 沒有正則表達式庫的簡單正則表達式?
[C#中的正則表達式大寫替換]的可能的重複(http://stackoverflow.com/questions/205382/regular-expression-uppercase-replacement-in-c) – bzlm 2010-11-08 23:27:53