質問

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})を見つけます
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top