Je voudrais participer à une chaîne pour l'utiliser ailleurs. Par exemple, j'ai les chaînes suivantes: p>
Je voudrais obtenir la valeur "XYZ est le nom du projet" de la chaîne. Le mot "projet" et caractère "-" avant que le nombre ne soit toujours présent. P>
3 Réponses :
# define the input string $str = 'Project XYZ is the project name - 20-12-11' # use regex (-match) including the .*? regex pattern # this patterns means (.)any char, (*) any times, (?) maximum greed # to capture (into brackets) the desired pattern substring $str -match "(Project.*?is the project name)" # show result (the first capturing group) $matches[1]
S'il vous plaît ne postez pas uniquement de code comme réponse, mais fournissez également une explication de votre code et de la manière dont il résout le problème de la question. Les réponses avec une explication sont généralement plus utiles et de meilleure qualité, et sont plus susceptibles d'attirer des upvotes.
Je pense qu'un Lookarning Expression régulière fonctionnerait ici depuis "projet" et " - "sont toujours là:
Un regard suround peut être utile pour obtenir un subordonneur String. P> Explication: P> Exemple dans PowerShell: P> (? P>
(? = LookeDeHind Li>
projet code> = chaîne de démarrage (espace inclus) li>
) code> = la fermeture de la vedette négative li>
. +? code> = correspond à quelque chose entre li>
(? = code> = lookahead positif li>
- code> = fin de fin de la chaîne li>
) code> = fermeture positive lookahead li>
ul>
Function GetProjectName($InputString) {
$regExResult = $InputString | Select-String -Pattern '(?<=Project ).+?(?= -)'
$regExResult.Matches[0].Value
}
$projectName = GetProjectName -InputString "Project XYZ is the project name - 20-12-11"
Write-Host "Result = '$($projectName)'"
Merci Brat. Je suis en fait nouveau dans Regex et j'apprécierais vraiment que vous puissiez vous aider à mieux comprendre comment utiliser Regex avec PowerShell.
D'accord Amir, je viens d'ajouter un exemple dans PowerShell. Espérons que c'est utile dans votre situation.
Voici encore une autre version de regex. [ grin em>] Il peut être plus facile de comprendre car il utilise des motifs de regex quelque peu de base. Qu'est-ce que c'est ... P> le code ... p>
Cela ne gardera que ce qui vient après em> it. li>
Cette partie ne gardera que ce qui est avant em> it. li>
La pièce dans le () code> est ce qui sera placé dans le premier groupe de capture. LI>
Cette réponse est meilleure parce que c'est en fait un code PowerShell
Jusqu'à ce que votre commentaire, je n'ai pas remarqué que la réponse par BART code> n'était que REGEX, pas POSH avec regex. [ blush i>]
Et quel est votre problème avec ça? Qu'est-ce qui ne fonctionne pas? En savoir plus sur Régulier Expressions .
J'ai besoin de l'expression que je peux utiliser pour obtenir ce résultat