Как объявить регулярное выражение для типа наследования (класс childclass: baseclass)? - PullRequest
0 голосов
/ 05 апреля 2019

Как объявить формат наследования в регулярном выражении?

Я перепробовал все случаи, указанные ниже, но это Regex.IsMatch всегда возвращает false

class \w\W+[:\s\w,]+
class \w+[\s?][\s:[\s?]\w,]+
class \w\s+[\s:\s\w]

Мне нужно установить регулярное выражение для наследования (класс childclass: baseclass), и формат должен возвращать true (Regex.IsMatch), он возвращает false для следующего теста:

открытый класс, дочерний класс: базовый класс

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

Пример простого шаблона, который соответствует вашим критериям: \w+ class \w+ : \w+ (одно слово, ключевое слово класса, имя класса, двоеточие, имя базового класса).

using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        var input = @"
using System;

public class ChildClass : BaseClass
{
}
";
        var pattern = @"\w+ class \w+ : \w+";
        var isMatch = Regex.IsMatch(input, pattern);
        var matches = Regex.Matches(input, pattern);

        Console.WriteLine(isMatch);
        Console.WriteLine(matches.Count);
        Console.WriteLine(matches[0]);
    }
}

Выход:

True
1
public class ChildClass : BaseClass

https://dotnetfiddle.net/K9RNbJ

0 голосов
/ 05 апреля 2019

Пожалуйста, попробуйте это регулярное выражение

(общественный | частный | внутренний | защищенный) (частичный) \ S Класс \ s + (/*.* /) \ S \ ш + [ \ s] \ s + (/*.* /) \ S : \ s + (/*.* /) \ S * \ S * (\ ш +, * \ ш +)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...