2011-11-14 16 views
1

を最初の単語の後、すべてを削除します正規表現:各行の最初の単語以外のすべてを削除するために使用され、正規どう表現次の行に

データ:

JAMES   3.318 3.318  1 
JOHN   3.271 6.589  2 
ROBERT   3.143 9.732  3 

私がやろうとしていますこれはノートパッド++で置き換えられます。 perlの表記で

+0

正規表現は、それらを操作するのではなく、文字列全体で複雑な一致を検索するために使用されています。 – Ben

答えて

2

は、使用しているものの正規表現の実装に依存します。

正規表現^[A-Za-z_]+は、行の最初の単語を取得します。したがって、この最初の単語をキャプチャして印刷することができます。あなたは、代替を使用する必要がある場合

、あなたはあなたが\1^(\s*\w+)\s+.*$を置き換えることができますコマンド:%s/^\([A-Za-z_]+\).*/\1/

+0

実際に私はメモ帳++でそれをやろうとしていましたが、これらのどれもしていないようです。 – Alasdair

+0

'^([A-Za-z _] +)。*'を '\ 1'で置き換えれば、私のために働きました。 –

+0

申し訳ありませんが、何らかの理由でそのビットが見えませんでした。 – Alasdair

2

s/^(\w+).*$/$1/ 
1

を使用することになり、VIに、\1 例:用^([A-Za-z_]+).*を置き換えることができ、それが最初の単語を保持し、残りの部分を削除します行の

1

私が知っている、このポストは...数年前である。) とにかく:

は単語が空白に続く任意の文字列であると仮定すると:

正規表現は次のようになります。 /\s.*/g

"。"改行以外は何も表していません。

あなたが最初の単語の後に任意の行の残りの部分を「削除」するには、次のコマンドを使用しますViに

:%s/\s.*//g

関連する問題