2017-10-31 7 views
1

Rの括弧を切り詰めようとしていますが、次のエラーが表示されます。Rの冒頭括弧を抽出しています。

text = "suppressWarnings(Gauge_Rule_Extraction(machine_id, gauge_output_calculation_df, host))" 

gregexpr("(", text) 

Error in gregexpr("(", m) : 
    invalid regular expression '(', reason 'Missing ')'' 

しかし、私は閉じ括弧を抽出することができます。

gregexpr(")", m) 
[[1]] 
[1] 123 125 
attr(,"match.length") 
[1] 1 1 
attr(,"useBytes") 
[1] TRUE 

私は間違っています。

+0

一般のコメント:私はあなたがここに行う上で計画して何を知らない、しかし、あなたは、ネストされた括弧を処理する場合、一般的に、あなたは、パーサーが必要になります正規表現だけではなく、そうすること。 –

答えて

2

大括弧は正規表現でエスケープする必要があります。これはバックスラッシュで行います。さらに、backslaseはその後、エスケープする必要がありますので、ダブルアップ:

gregexpr("\\(", text) 

[[1]] 
[1] 17 40 
attr(,"match.length") 
[1] 1 1 
attr(,"useBytes") 
[1] TRUE 
関連する問題