سؤال

أحاول استبدال اختصار الحالة المكون من حرفين بالنص ثم الاختصار.في النهاية أريد العثور على الباقي واستبداله.كيف يمكنني التقاط القيمة التي تم العثور عليها؟....لقد حاولت \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 لا يعمل.

أجد:AZ] [AZ] استبدال مع:إذا (usState == "$1

هل كانت مفيدة؟

المحلول

ومن الغريب أن التعبيرات العادية لـ Visual Studio تختلف عن التعبيرات العادية لـ .Net.لديهم بناء جملة مختلف قليلاً للعلامات والاستبدالات.لتتمكن من وضع علامة على جزء من النص لمطابقته لاحقًا، يجب عليك لفه بين قوسين معقوفين {}.ثم يمكنك استخدام في سلاسل الاستبدال حيث n هو التعبير ذي العلامة n.بالنسبة للسيناريو الخاص بك، إليك السلاسل التي يجب عليك استخدامها

  • يجد: {[A-Z][A-Z]}
  • يستبدل: if( usState == "\1")

نصائح أخرى

وبلدي التعابير المنطقية المنظر مباريات $ 1. محاولة ذلك.

وأنا ربما لم يفهم مشكلتك، ولكن لماذا لا تقوم بتسجيل ماكرو مؤقتة للقيام التحول؟

وأرفق [A-Z] [A-Z] بين قوسين، الذي يجسد فيه؛ ثم، استخدم \ 1 في سلسلة الاستبدال للإشارة إلى القبض عليه.

ومنذ هذه الأسئلة يبدو أن نسخة مكررة من https://stackoverflow.com/a/3147177/154480 لكن لقد وجدت هذا واحد أولا: منذ البصرية ستوديو 2012، يمكنك استخدام (pattern) و$1. وكمثال على هذا السؤال معين، تجد ([A-Z]{2}) التي كتبها if( usState == "$1")

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top