R Language                
            Rの正規表現構文
        
        
            
    サーチ…
前書き
このドキュメントでは、Rで使用される正規表現の基礎を紹介します。Rの正規表現構文の詳細については、 ?regex参照してください。正規表現演算子の包括的なリストについては、 このICUの正規表現に関するガイドを参照してください。 
文字ベクトル内の文字列を見つけるには `grep`を使います
# 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は "x"または "y" 
grep('5|8', mystring)
# [1] 1 2
grep('com|org', mystring)
# [1] 5 6
 .正規表現の特殊文字です。これは、 "任意の文字に一致" 
grep('The number .', mystring)
# [1] 1 2
ドットをマッチさせるときは注意してください!
tricky <- c('www.personal.org', 'My friend is a cyborg')
grep('.org', tricky)
# [1] 1 2
リテラル文字を照合するには、文字列をバックスラッシュ( \ )でエスケープする必要があります。しかし、Rは文字列を作成する際にエスケープ文字を探しているので、実際にはバックスラッシュ自体をエスケープする必要があります(正規表現文字を二重にエスケープする必要があります)。 
grep('\.org', tricky)
# Error: '\.' is an unrecognized escape in character string starting "'\."
grep('\\.org', tricky)
# [1] 1
複数の文字のいずれかに一致させたい場合は、それらの文字を角かっこ( [] )で囲むことができます
grep('[13]', mystring)
# [1] 3 4
grep('[@/]', mystring)
# [1] 5 7
文字シーケンスを示すことは有用かもしれません。たとえば、 [0-4]は0,1,2,3,4と一致し、 [AZ]は大文字に一致し、 [Az]は大文字または小文字に一致し、 [A-z0-9]は任意の文字に一致します文字または数字(すなわち、すべての英数字) 
grep('[0-4]', mystring)
# [1] 3 4
grep('[A-Z]', mystring)
# [1] 1 2 4 5 6
 Rには、カッコ内で使用できるいくつかのショートカットクラスもあります。たとえば、 [:lower:]はaz 、 [:upper:]はAZ 、 [:alpha:]はAz 、 [:digit:]は0-9 、 [:alnum:]はA-z0-9 。これらの完全な式は角カッコ内で使用する必要があります。たとえば、1桁の数字と一致させるには、 [[:digit:]]使用します(二重括弧に注意してください)。別の例として、 [@[:digit:]/]は@ 、 /または0-9文字と一致します。 
grep('[[:digit:]]', mystring)
# [1] 1 2 3 4
grep('[@[:digit:]/]', mystring)
# [1] 1 2 3 4 5 7
大括弧は、カラット( ^ )との一致を否定するためにも使用できます。たとえば、 [^5]は "5"以外の文字と一致します。 
grep('The number [^5]', mystring)
# [1] 2