Rのstrapplycを使用して、特定の条件セットに一致する文字列の異なる部分を選択しています。これらは、必要な部分が2つの方法のうちの1つを定義できる文字列の一部を見つけるまで、正常に機能しました。私は欠陥の間のテキストをキャプチャするstrapply文を書くことができstrapply内の正規表現OR文を書く方法R
\t\t\tsome words here\t\t\tDefect: some more words here Action: more words
:ここ
は気前の\トンを振りかけている文字列の例であり、行動の開始:
strapplyc(record[i], "Defect:(.*?)Action")
これは、[不具合]と[アクション]の間で選択したテキストを選択して選択します。いくつかのケースでは、文字列へのアクションセクションはありません。これらのケースを取り込むために次のコードを使用しました。私がやろうとしてきた何
strapplyc(record[i], "Defect:(.*?)$")
は、いずれかのアクションで終わる、または文字列の末尾に($を使用して)というテキストをキャプチャしています。
これは失敗し続けるビットです。いずれのオプションでも何も返しません。ここに失敗したコードがあります:
strapplyc(record[i], "Defect:(.*?)Action|$")
私が間違っているかどうか、あるいはより良い解決策が大いに評価されるでしょう。
交替をグループ内に入れる必要があります。そうでなければ、最初の選択肢は「欠陥:(。*?)アクション」で、2番目は '$'です。あなたはそれを 'Defect:(。*?)(?:Action | $)'と書き換えることができます。あなたの正規表現のより効率的なバージョンは 'Defect:((?:[^ A] | A(?!ction))*)') ' –
' 'Defect:また、Action:の後ろに '' gsub( "。* Defect:| Action。*"、 ""、x) 'を実行し、' Action'を省略することもできます。 –