Regex.GroupNameFromNumber(Int32) Yöntem

Tanım

Belirtilen grup numarasına karşılık gelen grup adını alır.

C#
public string GroupNameFromNumber(int i);

Parametreler

i
Int32

İlgili grup adına dönüştürülecek grup numarası.

Döndürülenler

Belirtilen grup numarasıyla ilişkili grup adını içeren bir dize. öğesine karşılık gelen ibir grup adı yoksa yöntemi döndürür Empty.

Örnekler

Aşağıdaki örnek, ABD şehir adı, eyalet adı ve posta kodu içeren bir adres satırıyla eşleşen normal bir ifade desenini tanımlar. Örnek, yakalama gruplarının adlarını almak için yöntemini kullanır GroupNameFromNumber . Ardından, eşleşmeler için ilgili yakalanan grupları almak için bu adları kullanır.

C#
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"(?<city>[A-Za-z\s]+), (?<state>[A-Za-z]{2}) (?<zip>\d{5}(-\d{4})?)";
      string[] cityLines = {"New York, NY 10003", "Brooklyn, NY 11238", "Detroit, MI 48204", 
                            "San Francisco, CA 94109", "Seattle, WA 98109" };
      Regex rgx = new Regex(pattern);
      List<string> names = new List<string>();
      int ctr = 1;
      bool exitFlag = false;
      // Get group names.
      do {
         string name = rgx.GroupNameFromNumber(ctr);
         if (!String.IsNullOrEmpty(name))
         {
            ctr++;
            names.Add(name);
         }
         else
         {
            exitFlag = true;
         }
      } while (!exitFlag);

      foreach (string cityLine in cityLines)
      {
         Match match = rgx.Match(cityLine);
         if (match.Success)
            Console.WriteLine("Zip code {0} is in {1}, {2}.", 
                               match.Groups[names[3]], 
                               match.Groups[names[1]], 
                               match.Groups[names[2]]);
      } 
   }
}
// The example displays the following output:
//       Zip code 10003 is in New York, NY.
//       Zip code 11238 is in Brooklyn, NY.
//       Zip code 48204 is in Detroit, MI.
//       Zip code 94109 is in San Francisco, CA.
//       Zip code 98109 is in Seattle, WA.

Normal ifade deseni aşağıdaki ifadeyle tanımlanır:

(?<city>[A-Za-z\s]+), (?<state>[A-Za-z]{2}) (?<zip>\d{5}(-\d{4})?)

Aşağıdaki tabloda normal ifade deseninin nasıl yorumlandığı gösterilmektedir.

Desen Description
(?<city>[A-Za-z\s]+) Bir veya daha fazla alfabetik veya boşluk karakterini eşleştirin. Yakalanan bu gruba adını cityatayın.
, Virgülle (,) ve ardından boşluk karakteriyle eşleştirin.
(?<state>[A-Za-z]{2}) İki alfabetik karakteri eşleştirin. Yakalanan bu gruba adını stateatayın. Bu grubu bir boşluk karakteri takip etmelidir.
(?<zip>\d{5}(-\d{4})?) Beş sayısal basamağı eşleştirin ve ardından bir kısa çizginin sıfır veya bir tekrarını ve ardından dört basamak ekleyin. Yakalanan bu gruba adını zipatayın.

Açıklamalar

Normal ifade deseni, bir desen eşleşmesi içindeki alt ifadeleri gösteren adlandırılmış veya numaralandırılmış yakalama grupları içerebilir. Numaralandırılmış gruplar söz dizimi (alt ifade) ile sınırlandırılır ve normal ifadedeki sıralarına göre sayılar atanır. Adlandırılmış gruplar söz dizimi (?<Adı>alt ifade) veya (?' name'subexpression), burada ad, alt ifadenin tanımlandığı addır. (Daha fazla bilgi için bkz. Gruplandırma Yapıları.) yöntemi, GroupNameFromNumber hem adlandırılmış grupları hem de numaralandırılmış grupları normal ifadedeki sıralı konumlarına göre tanımlar. Sıralı konum sıfır her zaman normal ifadenin tamamını temsil eder. Ardından, normal ifade desenindeki gerçek konumlarından bağımsız olarak, tüm numaralandırılmış gruplar adlandırılmış gruplardan önce sayılır.

Adlandırılmış bir grubun sayısıysa i , yöntemi grubun adını döndürür. Adsız bir grubun sayısıysa i , yöntemi sayının dize gösterimini döndürür. Örneğin, 1 ise i , yöntem "1" döndürür. i Yakalama grubunun sayısı değilse, yöntemi döndürürString.Empty.

Bir desen eşleşmesi bulunursa, bu yöntem tarafından döndürülen değer, yakalanan grubu özelliğinden GroupCollection.Item[] temsil eden nesneyi almak Group için kullanılabilir. GroupCollection nesnesi özelliği tarafından Match.Groups döndürülür.

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Ayrıca bkz.