0

特定のファイル形式で次のことを行うために、特定の正規表現を書きたかったのです。

3 番目のフィールドが O だけであるか、O の後に何かがあるかどうかを正規表現で確認できるはずです。

現在、私は以下に示すように次の構文を使用しています。

   if ($line !~ /^ATOM\s+\d+\s+(O)/)
   {

   }

皆さん、私を助けてくれませんか?

  ATOM     284  OD1  ASN 1   34   -7.92000  -6.74600  -4.73800 O_2    1 2 -0.55000 0   0
  ATOM     308  O    LEU 1   35  -10.48500 -13.59200  -8.35100 O_2    1 2 -0.51000 0   0

O の後に何かを含むファイルから行を出力できるようにしたい (OD1 行など)。Oだけで行を削除できるはずです。

4

4 に答える 4

1

追加するだけ\Sです(「スペース以外の文字」を意味します):

/^ATOM\s+\d+\s+O\S/

ところで、あなたは正規表現を知らないという印象ですか?(「Perl 正規表現チュートリアル」) manpageをお勧めperlretutます。

于 2013-08-06T21:39:06.437 に答える