R Language
Składnia wyrażeń regularnych w R.
Szukaj…
Wprowadzenie
Ten dokument przedstawia podstawy wyrażeń regularnych używanych w R. Aby uzyskać więcej informacji na temat składni wyrażeń regularnych R, zobacz ?regex
. Pełna lista operatorów wyrażeń regularnych znajduje się w tym przewodniku ICU na temat wyrażeń regularnych .
Użyj `grep`, aby znaleźć ciąg znaków w wektorze znaków
# 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
oznacza szukanie „x” lub „y”
grep('5|8', mystring)
# [1] 1 2
grep('com|org', mystring)
# [1] 5 6
.
jest postacią specjalną w Regex. Oznacza „dopasuj dowolny znak”
grep('The number .', mystring)
# [1] 1 2
Zachowaj ostrożność, próbując dopasować kropki!
tricky <- c('www.personal.org', 'My friend is a cyborg')
grep('.org', tricky)
# [1] 1 2
Aby dopasować dosłowny znak, musisz uciec z łańcucha odwrotnym ukośnikiem ( \
). Jednak R próbuje wyszukać znaki specjalne podczas tworzenia ciągów, więc faktycznie musisz uciec z samego odwrotnego ukośnika (tj. Musisz podwójnie uciec ze znaków wyrażenia regularnego).
grep('\.org', tricky)
# Error: '\.' is an unrecognized escape in character string starting "'\."
grep('\\.org', tricky)
# [1] 1
Jeśli chcesz dopasować jeden z kilku znaków, możesz zawinąć je w nawiasy ( []
)
grep('[13]', mystring)
# [1] 3 4
grep('[@/]', mystring)
# [1] 5 7
Przydatne może być wskazanie sekwencji znaków. Np. [0-4]
pasuje do 0, 1, 2, 3 lub 4, [AZ]
pasuje do dowolnej wielkiej litery, [Az]
pasuje do dowolnej wielkiej lub małej litery, a [A-z0-9]
pasuje do dowolnej litera lub cyfra (tzn. wszystkie znaki alfanumeryczne)
grep('[0-4]', mystring)
# [1] 3 4
grep('[A-Z]', mystring)
# [1] 1 2 4 5 6
R ma także kilka klas skrótów, których można używać w nawiasach. Na przykład [:lower:]
to skrót od az
, [:upper:]
to skrót od AZ
, [:alpha:]
to Az
, [:digit:]
to 0-9
, a [:alnum:]
to A-z0-9
. Zauważ, że te całe wyrażenia muszą być użyte w nawiasach; na przykład, aby dopasować jedną cyfrę, możesz użyć [[:digit:]]
(zwróć uwagę na podwójne nawiasy kwadratowe). W innym przykładzie [@[:digit:]/]
dopasuje znaki @
, /
lub 0-9
.
grep('[[:digit:]]', mystring)
# [1] 1 2 3 4
grep('[@[:digit:]/]', mystring)
# [1] 1 2 3 4 5 7
Wsporników można również użyć do zanegowania dopasowania za pomocą karata ( ^
). Na przykład [^5]
pasuje do dowolnego znaku innego niż „5”.
grep('The number [^5]', mystring)
# [1] 2