Операция регулярного выражения, не возвращающая определенные значения

#c# #regex

#c# #регулярное выражение

Вопрос:

Я использую следующую операцию регулярного выражения

 (?:publics|privates|protecteds|internals|)?[sw]*s (?<methodName>w )s*(s*(?:(refs|ins|outs)?s*(?<parameterType>[w?[]] )s (?<parameter>w )s*,?s*) )
  

он отлично работает с таким методом, как

 public ResponseViewModel ResponseDetails(
    ResponseViewModelContext responseViewModelContext)
  

но если есть какой-либо список в любом возвращаемом типе или параметре, он не соответствует ожидаемому.

т.е. следующий метод не работает

 public List<ResponesViewModel> ResponseDetails(
    List<ResponesViewModelContext> responseViewModelContext)
  

Ссылка для регулярного выражения в режиме онлайн

Комментарии:

1. Что вы пробовали? Там есть что-то, что очевидно даже для того, кто не знает регулярных выражений, если он приложил хоть малейшее усилие, чтобы прочитать это, так могу ли я предположить, что вы вообще не прилагали никаких усилий?

2. Я пытался в течение последних 3 часов с этими тегами. но это не сработало, поэтому я разместил здесь. К вашему сведению, вопрос заключается в том, чтобы получить все подробности о том, что я пробовал, и ссылку, по которой я пробовал. Спасибо

Ответ №1:

Вам нужно было добавить <> символы в скобках в регулярное выражение.

(?:publics|privates|protecteds|internals|)?[sw<>]*s (?<methodName>w )s*(s*(?:(refs|ins|outs)?s*(?<parameterType>[w<>?[]] )s (?<parameter>w )s*,?s*) )

Ссылка для регулярного выражения