صافي التعبيرات المنتظمة التعبير لإيجاد واستبدال أي اسم المنتج القيمة في ملف .vdproj في C #

StackOverflow https://stackoverflow.com/questions/1817108

  •  08-07-2019
  •  | 
  •  

سؤال

وأنا أحاول أن أكتب مهمة تمديد نانت التي يمكن تحديث إعدادات مختلفة داخل البصرية ستوديو 2003 إنشاء ملف الإعداد .vdproj، وسوف نقدر المساعدة في ما يلي.

وعلى وجه التحديد، وأود أن استخدام تعبير باستخدام التعابير المنطقية العثور عليها، وإذا وجدت، تحل محل أي قيمة سلسلة القيمة التي تم تعيينها إلى القيمة اسم المنتج مع قيمة سلسلة جديدة في entirty لها.

وأنا أبحث عن التعبير باستخدام التعابير المنطقية المقرر أن تغيير "اسم المنتج" إلى أي قيمة أخرى دون الحاجة إلى الاعتماد على أي شيء آخر غير أن السلسلة سعى تبدأ مع "اسم المنتج" = "8": ثم لديه 1 أو أكثر من الشخصيات و . تنتهي مع "علامة حاولت التالية ولكن دون جدوى:

وقبل تنفيذ جزء التعليمات البرمجية التالية، اسم المنتج ملف .vdproj في ما يلي:

"ProductName" = "8:My Simple .NET Application"

... وجزء التعليمات البرمجية في C #:

string _theProductName = "My Other Native Application";

Regex productNameExpression = new Regex( @"(?:\""ProductName\"" = \""8:*)" );

_theProjectFileContents = 
productNameExpression.Replace(_theProjectFileContents, 
                              "\"ProductName\" = \"8:" + _theProductName + "\"" );

bool updatedProductName = 
(_theProjectFileContents.IndexOf(_theProductName) >= 0);

وبعد تنفيذ جزء التعليمات البرمجية أعلاه، اسم المنتج ملف .vdproj من يقرأ الآن:

"ProductName" = "8:My Simple .NET Application"My Other Native Application"

وإغلاق، ولكن كنت أتوقع "يا باقي التطبيقات الأصلية" ليحل محل "بلدي بسيط .NET تطبيق"، وليس إضافة إليها.

وأي رؤى ومساعدة سيكون موضع تقدير كبير.

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

المحلول

وأنت جدا هناك تقريبا - فقط في عداد المفقودين واحدة
. تغيير التعابير المنطقية الخاص بك وبالتالي والسعادة ينبغي أن يتبع ...

Regex productNameExpression = new Regex(@"(?:\""ProductName\"" = \""8:.*)"); 

لاحظ. بعد 8:

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