J'ai des problèmes avec un groupe optionnel dans une expression regex (syntaxe .NET, et j'utilise RegexOptions.Singleline).RegEx et une chaîne optionnelle
"function (\w*).*?{(?:.*?\((.*?)\))?.*?}"
également essayé, en vain: "function (\w*)[^{]+{(?:.*?\((.*?)\))?.*?}"
Il semble que le groupe n'est pas facultative, parce que si je viens d'ajouter deux parenthèses dans FunctionWithNoParameters alors que tout fonctionne bien. L'objectif est d'avoir deux groupes: le nom de la fonction et leurs paramètres optionnels. Est-ce que quelqu'un peut m'aider?
Le texte que je suis en train d'analyser est quelque chose comme:
function test1
{
param ([int]$parm2, [bool]$parm3)
}
function FunctionWithNoParameters {
return "nothing"
}
function test2 {
param([string]$parm1,
[int]$parm2,
[bool]$parm3)}
Merci, Alex
Vous ne voulez pas analyser une langue non régulière avec une expression régulière, n'est-ce pas? – Gumbo
Non, je ne le suis pas. Ce ne serait probablement pas la meilleure approche pour ce problème;) J'essaie d'obtenir toutes les fonctions (et leurs paramètres) dans un script Powershell ... – Alex