مشكلة مع استبدال التعبير العادية في Visual Studio 2003
-
22-07-2019 - |
سؤال
وأنا في عملية تحويل بعض الوثائق اللثي إلى نص إعادة هيكلة وجود بعض المشاكل مع تعبير عادي في Visual Studio 2003. أنا أحاول تحويل \ emph {نص} إلى * نص * باستخدام الاكتشاف التالية / استبدال السلاسل:
\\emph\{([^\}]*)\}
*\0*
ولكن، \ emph {نص} تحويلها باستخدام هذا الزوج أحصل على * \ emph {نص} * التي لم يكن ما كنت أتوقع. عند استخدام * \ 1 * بدلا من * \ 0 * أحصل ** نتيجة الاستبدال.
ما أنا في عداد المفقودين أو ما لا أفهم حول قواعد التجمع؟
وشكرا.
المحلول
وأعتقد أن في بناء الجملة استبدال باستخدام التعابير المنطقية VS، \ 0 هو السلسلة كلها المتطابقة، بينما \ 1 هو محتوى متغير القبض على الأول (\ 2 كونها ثاني وهلم جرا). لذلك:
<اقتباس فقرة>\ 0 م>
ولكن استخدام هذا الزوج أحصل \ emph {نص} تحويلها إلى * \ emph {نص} * الذي لم يكن ما كنت أتوقع.
اقتباس فقرة>وهكذا يؤكد، \ 0 هو السلسلة كلها مطابقة.
<اقتباس فقرة>عند استخدام I * \ 1 * بدلا من * \ 0 * أحصل ** نتيجة الاستبدال.
اقتباس فقرة>وربما كنت لا مطابقة أي شيء في فئة القبض عليه.
لإضافة المزيد من التفاصيل، وبناء الجملة من أجل تعريف الطبقة القبض على (تسمى التعبير الموسومة في <لأ href = "http://msdn.microsoft.com/en-us/library/2k3te2cs(VS.80).aspx "يختلط =" نوفولو noreferrer "> مستندات ) يستخدم الأقواس {}، وليس قوسين () كما كنت تستخدم هنا. ربما هذا العمل كوسيلة للتعبير "العثور على":
\\emph\{{[^\}]*}\}