Visual Studioによる変数の検索と置換
-
03-07-2019 - |
質問
2文字の州の略語をテキストに、次に略語に置き換えようとしています。 最終的には、残りを見つけて交換したいと思います。見つかった値をキャプチャするにはどうすればよいですか? .... \ 1と{1}を試しました
AL 32.2679134368897 -86.5251510620117
AR 35.2315113544464 -92.2926173210144
AZ 33.3440766538127 -111.955985217148
CO 39.7098631425337 -104.899092934348
if( usState == "AZ") dpos= "33.4736704187888" + " " + "-112.043138087587";
if( usState == "CA") dpos= "36.0783581515733" + " " + " -119.868895584259";
if( usState == "CO") dpos= "39.8950788035537" + " " + " -104.831521872318";
if( usState == "CT") dpos= "41.6001570945562" + " " + " -72.6606015937273";
更新 $ 1は機能しません。
見つけています:[A-Z] [A-Z] 置換:if(usState ==" $ 1
解決
奇妙なことに、Visual Studioの正規表現は通常の.Net正規表現とは異なります。タグと置換の構文はわずかに異なります。後で一致させるためにテキストにタグを付けるには、中括弧{}で囲む必要があります。次に、置換文字列で\ nを使用できます。nは、n番目のタグ付き式です。シナリオで使用する文字列は次のとおりです
- 検索:
{[A-Z] [A-Z]}
- 置換:
if(usState ==" \ 1")
他のヒント
正規表現マッチャーは$ 1に一致します。それを試してください。
あなたの問題を理解していないかもしれませんが、変換を行うために一時マクロを記録してみませんか?
[A-Z] [A-Z]を括弧で囲み、それをキャプチャします。次に、置換文字列で\ 1を使用してキャプチャを参照します。
この質問は https://stackoverflow.com/a/3147177/154480 と重複しているようですが、最初にこれを見つけました。VisualStudio 2012以降では、(pattern)
と $ 1
を使用できます。この特定の質問の例として、 if(usState ==" $ 1")
([A-Z] {2})
を見つけます 所属していません StackOverflow