2017-05-11 2 views
0

は、XXXXは、いくつかの単語である置換は、私は私のテキストに頻出パターンを持っている

(Eq. \ref{XXXX}) 

言うと、私は単に

\refp{XXXX} 

にすべてこれを変更したいのですがRegexを使っても、のCtrlFを使っても動作させることはできません。発生箇所を見つけるための構文

\(Eq. \\ref{.*}\) 

作品(...いくつかのバグを持つ場合)が、従来のバックリファレンス

\\refp{\1} 

は、交換のために動作しません。

atom-shell-commandsパッケージを使用してカスタムコマンドを作成しようとしましたが、現在の選択項目でsedを使用することが考えられます。しかし、パッケージは8進エスケープシーケンスを受け付けません。

どのような考えですか?

答えて

1

置換トークンは$であり、\ではありません。

\\refp{$1} 

正規表現のマッチングと一般的であるように、これらのトークンは左から、括弧グループの内容にマッチ:だから$1$2$3は、...

この場合、交換がなければなりませんしたいです右。だからあなたはまた、一致する括弧を追加する必要があります。あなたの一致文字列は次のようになります。

\(Eq. \\ref{(.*)}\) 

注意$1に保存されているものを括弧内にあるので、何でも、.*一致周りに括弧があります。 2番目と3番目の括弧があれば、それらは$2$3になります。

+0

ありがとう、私の経験不足が大声で話していました。これはAtomの内部で動作しましたが、いくつかの奇妙なバグがあります。いくつかの(明らかにランダムな)ケースでは、findコマンドは次の右括弧が見つかるまで、一致した後のすべてを強調表示します。理由はわかりません。 また、atom-shell-commandsパッケージは少なくともbakcreferencingを受け入れましたが、sedで作成したコマンドは実際には機能しません。しかしこれは別の問題ですが、おそらく私は新しい質問を作成すべきです。 – rodrigomp

+0

@rodrigompおそらく、正規表現の問題のようなにおいがします。しかし、イエスは別々に尋ねられるのが最も良いかも –

関連する問題