我想了解如何(?<名稱>模式)在正則表達式中工作。有一個很好的鏈接,或有人提供一個簡單的解釋?幫助理解正則表達式名稱模式
0
A
回答
0
從Mastering Regular Expressions:
命名捕獲:
\b(?<Area>\d\d\d\)-(?<Exch>\d\d\d)-(?<Num>\d\d\d\d)\b
這種 「填充名稱」 區域,可置換,和Num與美國電話號碼的部件。程序然後可以通過其名稱引用每個匹配的子字符串,例如VB.NET中的RegexObj.Groups(「Area」)和大多數其他.NET語言,C#中的RegexObj.Groups [「Area」],RegexObj.group( 「區域」),而$匹配PHP中的[「區域」]。 結果是更清晰的代碼。
在正則表達式本身中,捕獲的文本可以通過\ k與.NET和Python和PHP中的(?P = Area)獲得。
使用Python和.NET(但不支持PHP),您可以在同一表達式中多次使用相同的名稱。
0
此功能爲您提供了使用友好名稱而不是索引輕鬆引用您從代碼(請參閱示例)或正則表達式本身捕獲的內容的可能性。 一個簡單的例子:
Regex regex = new Regex(@"(?<foo>[fF][oO][oO]) \k<foo>");
foreach (Match match in regex.Matches("bar fOO foO foO f0O"))
{
Console.WriteLine(match);
}
打印
foO foO
此正則表達式可以讓你趕上一個「富」與資本小寫字母的任意組合,但只,如果它是由另一個「富先「具有完全相同的大小寫字母集合。您還可以使用match.Groups["name"]
語法引用您的組,因此在此示例中,match.Groups["foo"]
將返回「foO」。
編輯:將使用\ k <名稱>語法的新示例。
相關問題
- 1. 正則表達式幫助
- 2. 正則表達式幫助
- 3. 正則表達式幫助
- 4. 幫助正則表達式
- 5. 正則表達式幫助
- 6. 正則表達式幫助
- 7. 正則表達式幫助
- 8. 幫助正則表達式
- 9. 幫助,正則表達式
- 10. 正則表達式幫助
- 11. 正則表達式幫助##### ##
- 12. 幫助正則表達式?
- 13. 幫助正則表達式
- 14. 正則表達式幫助
- 15. 幫助,正則表達式
- 16. 幫助正則表達式
- 17. 正則表達式幫助
- 18. 正則表達式幫助
- 19. 正則表達式幫助
- 20. 幫助,正則表達式
- 21. 正則表達式幫助
- 22. 正則表達式幫助
- 23. 幫助解釋正則表達式
- 24. JS正則表達式名稱模式
- 25. 需要用正則表達式幫助解析表達式
- 26. R:正則表達式 - 幫助正則表達式匹配
- 27. .NET正則表達式多行幫助 - 正則表達式
- 28. 正則表達式中的正則表達式幫助
- 29. 需要正則表達式幫助解析域名
- 30. 正則表達式幫助/很少理解
這通常用於反向引用問題。 參見: http://www.regular-expressions.info/named.html – Mischa 2009-08-30 14:20:02