2017-05-05 3 views
0

私は今日非常にひどく書いたvb.Netコードを手渡し、ODP.Netを使用するように移行するように求めました。これを少し短くするには、検索/置換を使用してすべてのコマンド変数をBindByName = trueに設定しました。最初のいくつかのコードファイルに基づいて、私はこれらのすべてが "cmd"という名前でしたが。残念ながら、彼らはそうではありません。コードの元の作者は実際には機能ごとに1つだけOracleCommandを使用したにもかかわらず、目的の後にすべてのコマンドを実際に命名しました。彼らはまた、usingが明らかに価値がないと決めました。私は「新しいのOracleCommandとして点心____」のすべてのインスタンスを取得し、「CMD」と変数名を置き換えるために使用することができますどのような正規表現Find/ReplaceでRegexを使って宣言文字列のすべてのインスタンスを検索しますか?

Dim cmGetStatus As New OracleCommand 
cmGetStatus.CommandType = CommandType.StoredProcedure 
cmd.BindByName = True `<--this was added by my previous replace with a regex 

? "_____。CommandType"のすべてのインスタンスで同じ種類の置換が行われるのはどうですか?これにより、少なくとも8時間の手作業での編集が省かれます。

+0

メモ帳++では正規表現を1つ使うことができます。 VSではありません。 –

答えて

2

検索:。(薄暗い)*(新OracleCommandのよう)

置き換え:$ 1cmd $ 2

検索:。*(= CommandType.StoredProcedure)

置き換えます。cmd $ 1

グループの置換は$ 1、$ 2などで行われます。

+0

これは理論的には1つの正規表現ではできませんでしたか?私はVS regexの置き換えに慣れていませんが、 '/(Dim\s+)?cm\w+(.New\s+OracleCommand|\CommandType\s+=\s+CommandType\.StoredProcedure)のようなものです。/'仕事?置換は '$ 1cmd $ 2'となります。 –

+0

絶対に!また、スペースはどこにでもまったく同じであると仮定して、そこにスペースを入れました。そうではないかもしれません。私はできるだけシンプルにしましたが、正規表現は完全に柔軟です。 – allen1

+0

@JosephMarikle誰もが常に複雑な仕事のすべてを一つの正規表現に結合したいと思っています。どうして?これは通常、より単純で多段階のプロセスでエラーが起こりにくいものです。 –

関連する問題