В вашем шаблоне (.*?)[^=]['(]+(.*?)[')]
вы используете классы символов ['(]
и [')]
, которые соответствуют любому из перечисленных и могут также сначала соответствовать открытию '
, а затем закрытию )
В качестве примера вы можете использовать:
(\w+)\.\[(\w+)\] +(\w+(?: \w+)*) +\(([^)\n]+)\)
(\w+)
Захват 1+ слов в группе 1 \.
Совпадение с точкой \[(\w+)\] +
Захват 1+ слов символов в квадратных скобках в группе 2 и пробелах 1+ (\w+(?: \w+)*) +
Захват 1+ слов слов с последующим повторением 0+ раз совпадения пробелов и 1+ слов в группе3 и 1+ пробелы \(([^)\n]+)\)
Захват 1+ раз не закрывающая или новая строка между круглыми скобками в группе 4
Регулярное выражение | .NET regex (щелкните на вкладке Таблица)
Если вы хотите разрешить совпадение большего числа символов, чем \w
, вы можете расширить его, используя класс символов.
Например, если вы также хотите разрешить использование дефиса и пробела [\w-]+
или если вы хотите сопоставить все в скобках, вы можете использовать класс отрицательных символов, например \[([^\]]+)\]