R Language
Syntaxe d'expression régulière en R
Recherche…
Introduction
Ce document présente les bases des expressions régulières utilisées dans R. Pour plus d'informations sur la syntaxe des expressions régulières de R, voir ?regex . Pour une liste complète des opérateurs d'expression régulière, consultez ce guide ICU sur les expressions régulières .
Utilisez `grep` pour trouver une chaîne dans un vecteur de caractères
# General syntax:
# grep(<pattern>, <character vector>)
mystring <- c('The number 5',
'The number 8',
'1 is the loneliest number',
'Company, 3 is',
'Git SSH tag is [email protected]',
'My personal site is www.personal.org',
'path/to/my/file')
grep('5', mystring)
# [1] 1
grep('@', mystring)
# [1] 5
grep('number', mystring)
# [1] 1 2 3
x|y signifie rechercher "x" ou "y"
grep('5|8', mystring)
# [1] 1 2
grep('com|org', mystring)
# [1] 5 6
. est un caractère spécial dans Regex. Cela signifie "correspondre à n'importe quel caractère"
grep('The number .', mystring)
# [1] 1 2
Soyez prudent lorsque vous essayez de faire correspondre les points!
tricky <- c('www.personal.org', 'My friend is a cyborg')
grep('.org', tricky)
# [1] 1 2
Pour correspondre à un caractère littéral, vous devez échapper à la chaîne avec une barre oblique inverse ( \ ). Cependant, R essaie de rechercher des caractères d'échappement lors de la création de chaînes. Vous devez donc échapper à la barre oblique inverse (c.-à-d. Vous devez échapper les caractères d'expression régulière).
grep('\.org', tricky)
# Error: '\.' is an unrecognized escape in character string starting "'\."
grep('\\.org', tricky)
# [1] 1
Si vous souhaitez associer un de plusieurs caractères, vous pouvez envelopper ces caractères entre crochets ( [] )
grep('[13]', mystring)
# [1] 3 4
grep('[@/]', mystring)
# [1] 5 7
Il peut être utile d'indiquer les séquences de caractères. Par exemple, [0-4] correspondra à 0, 1, 2, 3 ou 4, [AZ] correspondra à n'importe quelle lettre majuscule, [Az] correspondra à toute lettre majuscule ou minuscule et [A-z0-9] correspondra à n'importe quelle lettre. lettre ou numéro (c.-à-d. tous les caractères alphanumériques)
grep('[0-4]', mystring)
# [1] 3 4
grep('[A-Z]', mystring)
# [1] 1 2 4 5 6
R dispose également de plusieurs classes de raccourcis pouvant être utilisées entre parenthèses. Par exemple, [:lower:] est court pour az , [:upper:] est court pour AZ , [:alpha:] est Az , [:digit:] est 0-9 et [:alnum:] est A-z0-9 . Notez que ces expressions entières doivent être utilisées entre crochets; Par exemple, pour faire correspondre un seul chiffre, vous pouvez utiliser [[:digit:]] (notez les doubles crochets). Comme autre exemple, [@[:digit:]/] correspondra aux caractères @ , / ou 0-9 .
grep('[[:digit:]]', mystring)
# [1] 1 2 3 4
grep('[@[:digit:]/]', mystring)
# [1] 1 2 3 4 5 7
Les crochets peuvent également être utilisés pour annuler une correspondance avec un carat ( ^ ). Par exemple, [^5] correspondra à n'importe quel caractère autre que "5".
grep('The number [^5]', mystring)
# [1] 2