-4

ブロックの引数に一致する正規表現を開発してから、その引数のすべてのインスタンスを作成しようとしています。

この例を使用すると:

File.open(inFile).each do |line|
  line.chomp!
    if line.empty? then
      next
    elsif line =~ /^>/
      line.slice!(/>/)
      names.push(line)
    elsif line !~ /^>/
      seqs.push(line)
    end             
end 

パイプの間の単語を一致させたいと思いlineます, そして、のすべてのインスタンスline.

引数のマッチングは簡単です:

(?<=\|)(\w*?)(?=\|)

しかし、この一致をドキュメントの残りのパターンとして使用する方法が本当にわかりません.

進め方についてのご意見は大歓迎です。

(編集 2: 正規表現の範囲をブロックに限定することには関心がありません。ドキュメント全体のすべてのインスタンスを一致させたいと考えています。この単純な質問を再検討することを検討してください。)

(編集: この正規表現tmLanguageを textmate/sublime のファイルに取り込もうとしています。このようにして、引数とすべてのインスタンスが同じ色になります。これを行うプラグインを構築する方法があると確信していますが、私は持っていません。崇高なプラグインがどのように機能するかはまだ試していませんbracketHighlighter。)

4

2 に答える 2

2

そうしないでください。真剣に。確実に動作するわけではなく、手作業で変更を加えるよりも、結果の校正と修正に多くの時間を費やすことになります。

于 2013-02-24T22:26:25.537 に答える
0

Ruby言語バンドルの内部を調べて、どの名前にすでに一致が割り当てられているかを確認すると、最初の部分がすでに完了していることがわかります。

name: variable.other.block.ruby
match: [_a-zA-Z][_a-zA-Z0-9]*

その名前を使用して、ブロックローカル変数を参照できます(おそらく。) source.ruby.variable.other.block.ruby。複数引数リストのさまざまな一致をどのように参照するかわかりません。

ファイルからの入力ではなく、言語自体を解析しようとしていることが非常に不明確であるため、この質問には反対票を投じます。

于 2013-02-25T08:35:07.403 に答える