2017-07-22 19 views
0

私はそれは同じ引用符を使用するので、それはwritelnブロック内のコードを選択しhttp://regexr.com/3gdgpregexがインラインコードを処理しないようにするにはどうすればよいですか?

`([^`\n]+)` 

header 
`foo()` 
`bar()` some text 
newline 
thereis code: 
``` 
void main() 
{ 
    writeln(`hello world's`); 
} 
``` 

はRegex従って持っています。しかし、私はそれを選択する必要はありません。私の正規表現を修正するには?

私は行頭アンカー^を追加し、複数行のスイッチがオンになっていることを確認し、あなたが示すサンプルテキストについてfoo()bar()

+0

あなたは何を選択したいですか? – dawg

答えて

0

を選択することが予想されます。 regexr.comの場合は、複数行フラグを選択することを意味します。使用している正規表現のフレーバーを指定していないので、環境内でそのスイッチを指定する方法を理解する必要があります(デフォルトでオンになっている場合を除く)。

^`([^`\n]+)` 
+0

私の後悔のため、この 'foo()'と 'bar()'は最初の行ではないかもしれません... –

+0

あなたのfoo()とbar()がどこに現れるかは誰も推測できません。文字列リテラルはコード内のどこにでも表示できるので、ヘッダーの形式を正確に指定する必要があります。また、これらの文字列をコード**とは異なる形で区切る独自の機能があるかどうかを指定する必要があります。これらを定義したら、自分自身でより良い正規表現パターンを作成することをお勧めします。 1つのプロセスを使用してメインコードからプリアンブル(ヘッダー、非コードなど)を分離してから、トップテキストブロックが既に分離されていればfoo()やbar()などの追加情報を一致させる必要があるかもしれませんコードから。 –