J'essaie de convertir un script Perl en routine C# 3.5.Regex.split, comment lire à gauche du modèle correspondant
Le code perl J'est:
if($work =~ /\<[0-9][0-9][0-9]\>/){
$left = $`;
$match = $&;
$work = $';
}
En C# J'écrit le code suivant:
string[] sSplit = Regex.Split(work, @"\<[0-9][0-9][0-9]\>");
if sSplit.length is > 2
{
left = sSplit[0];
match = sSplit[1];
work = sSPlit[2];
}
Cependant ce qui précède ne me donne pas le modèle adapté à sSplit[1]
, mais le contenu le droit de la chaîne correspondante à la place.
Est-ce que vous voulez pas non plus à la fin trop ou (. *) sur les deux? Je me demande simplement ce qui se passe si la chaîne correspondante se répète et que vous voulez obtenir toutes les correspondances et ce qui est à gauche et à droite ... Bien que ce soit un peu au-delà de la portée de cette question. – Chris
@Chris: Si le second est '(. *?)' Ou '(. *)' Ne fait aucune différence à cause du '$' qui le suit. Le premier est important: c'est '(. *?)' Pour que vous obteniez la première correspondance. Avec '(. *)' Vous obtiendrez le dernier. – Timwi
tout le monde, merci beaucoup pour toute votre aide! – Desai