سؤال

أعتقد أن لدي بعض خطأ في بناء الجملة في البرنامج النصي ولكن لا يمكنني معرفة أين.

أريد تحديد عدد صحيح يقع بين زوج () يبدأ من يمين الخلية؟السبب يجري، قد يكون هناك زوج آخر من الأقواس التي تحتوي على أحرف

وماذا إذا كانت بعض السجلات هي مع قوسين وثيقين لسبب ما ..

e.g.

giveacodicetagpre.

النتيجة: 30 20

giveacodicetagpre.

ولكن يعرض فقط
30)
20)

لقد تمتلاجها حتى لا يستخرج ")، ولكن لا يمكن الحصول على النتائج المتوقعة.

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

المحلول

لذلك، تحتاج إلى الاستيلاء على ما بين المجموعة النهائية من الأقواس المفتوحة والإغلاق في نهاية سلسلة، أليس كذلك؟

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

giveacodicetagpre.

بعد ذلك، ابحث عن قوس إغلاق أول من نهاية السلسلة:

giveacodicetagpre.

ثم، ضع تلك معا. لاستخدام Substring، تحتاج إلى وضع الحرف الأول، ثم طول السلسلة التي تريدها، لذلك تحتاج إلى النتيجة الأولى (موضع "(')، ثم النتيجة الثانية ناقص النتيجة الأولى، للحصول على النتيجة الأولى طول القليل بين قوسين، كنقطة انطلاق:

giveacodicetagpre.

تحتاج أيضا إلى القيام قليلا من الاضطراب لاستخراج الجزء بين الأقواس، وترك الأقواس وحدها. هذا موضح في التعليقات في هذا المثال النهائي، حيث يجب أن يقوم التعبير النهائي بالوظيفة التي تريدها:

giveacodicetagpre.

لقد كسرت إجابتي لأسفل حتى تتمكن من معرفة كيفية الاقتراب من المشكلات مثل هذه - هل تفعلها قليلا في كل مرة، والتحقق من النتائج أثناء مرورك، ومن الأسهل الحصول على رأسك.

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