2017-03-23 21 views
1

一致する前に1文字を返す正規表現を書き込もうとしています。例えばRegex - 一致する前に1文字を返します。

:record1: Has text here with "\n" as the end of line \n 
however, there can be multiple line \n 
and I dont know how many before I get to the next record \n 
:record2: has some other date in it \n 

は私の現在の正規表現をしようとすると、最後の\ nをキャプチャしたいと、この

(\n)(?=:record2:) 

イドのようRECORD1ルックスの終わりを見つけることが、私はその位置を得ることができます。文字列の一致の直前に文字をキャプチャする方法に関する考えはありますか?簡単で高速になりそう

+0

を '*(\ n)で:?RECORD2:'最後を捉えるだろう '\ N 'の文字列の前に。しかし、あなたは「ポジション」と、どのツール/言語を使っているのですか? –

+0

文字列を '\ n:record:'で分割して(そして数字を削除しない) – antoni

+0

テキストファイルをxmlに変換するための独自のツールを使用しています。このツールを使用すると、正規表現を使用して開始タグと終了タグを定義できます。私は前に\ nを識別する終了タグを定義したいと思います:record2: – TheUltimateHack

答えて

0

あなただけ\n:record:して文字列を分割(と数字を削除)したくない場合は、その後、あなたが探していることはlookaheadと呼ばれる:\\n\n(?=:record\d+:)

はあなたがここにデモ表示することができます。https://regex101.com/r/im02XA/1

+0

これをチェックして更新します。ありがとう – TheUltimateHack

関連する問題