Comment obtenir la partie particulière de la chaîne correspondant à regexp dans Ruby?
J'ai une chaîne Unnecessary:12357927251data
et j'ai besoin de sélectionner toutes les données après côlon et de chiffres. Je vais le faire à l'aide de Regexp.
string.scan(/:\d+.+$/)
Cela va me donner :12357927251data
mais puis-je sélectionner uniquement les informations nécessaires .+
(data
)?
source d'informationauteur Simon Perepelitsa
Vous devez vous connecter pour publier un commentaire.
Quoi que ce soit dans des parenthèses dans une expression régulière sera capturé en tant que groupe, auquel vous pouvez accéder en
$1
$2
etc. ou en utilisant[]
sur un match de l'objet:Si vous utiliser le scan avec la capture de groupes, vous obtiendrez un tableau de tableaux de groupes:
Utilisation des parenthèses dans l'expression et le résultat sera traitée dans un tableau. Par exemple:
En supposant que vous essayez d'obtenir la chaîne de caractères "données" de votre chaîne, vous pouvez utiliser:
Chaîne#match retourne un MatchData objet. Vous pouvez alors l'index dans cette MatchData objet de trouver la partie de la chaîne que vous souhaitez.
(Le premier élément de MatchData est la chaîne d'origine, le second élément est la partie de la chaîne capturée par les parenthèses)
Essayez ceci:
/(?<=\:)\d+.+$/
Il change le côlon à un regard positif-derrière, de sorte qu'il n'apparaît pas dans le résultat. Notez que le côlon seul est un caractère de remplacement et donc, doit être précédé d'une barre oblique inverse.
À l'aide de la CISR