Как я получаю имя полученных групп в C# Regex?

Select              
CASE
    WHEN listing.OfferText is null or listing.OfferText = '' THEN company.OfferText
    ELSE COALESCE(Company.OfferText, '')
END As Offer_Text,         
from tbl_directorylisting listing  
 Inner Join tbl_companymaster company            
  On listing.company_id= company.company_id
95
задан Liam 29 September 2016 в 09:57
поделиться

2 ответа

Используйте GetGroupNames , чтобы получить список групп в выражении, а затем перебрать их, используя имена в качестве ключей в коллекции групп.

Например,

GroupCollection groups = regex.Match(line).Groups;

foreach (string groupName in regex.GetGroupNames())
{
    Console.WriteLine(
       "Group: {0}, Value: {1}",
       groupName,
       groups[groupName].Value);
}
122
ответ дан 24 November 2019 в 05:51
поделиться

Вы должны использовать GetGroupNames (); , и код будет выглядеть примерно так:

    string line = "No.123456789  04/09/2009  999";
    Regex regex = 
        new Regex(@"(?<number>[\d]{9})  (?<date>[\d]{2}/[\d]{2}/[\d]{4})  (?<code>.*)");

    GroupCollection groups = regex.Match(line).Groups;

    var grpNames = regex.GetGroupNames();

    foreach (var grpName in grpNames)
    {
        Console.WriteLine("Group: {0}, Value: {1}", grpName, groups[grpName].Value);
    }
7
ответ дан 24 November 2019 в 05:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: