Шаблон [^\w](?<Group1>[^;\W].+)
соответствует несловесному символу, а затем захватывает любой символ, кроме словесного и ;
(т. Е. Любое слово, кроме ;
- что не имеет большого смысла, ;
может быть безопасноудаляется из класса), а затем любые 1+ символов как можно больше в Группу 1. По сути, он может быть переписан как \W(?<Group1>\w.+)
, и вы увидите, что он соответствует слишком много, а не то, что вам нужно.
Вы можете использовать шаблон , например, , где \S*?
соответствует любым 0+ символам, кроме пробелов, как можно меньше:
;\s*(?<Group1>\S*?)\s*;
Или более эффективный вариант этогоpattern:
;\s*(?<Group1>[^;\s]*)\s*;
В шаблоне [^;\s]*
;
"вычитается из \S
, и [^;\s]*
теперь соответствует нулю или большему числу символов, кроме пробелов и ;
, столько, скольковозможно.
См. еще одну демонстрацию регулярных выражений .