في اشارة الى مجموعة موجودة بالفعل في التعابير المنطقية، ج #

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

  •  10-07-2019
  •  | 
  •  

سؤال

ولدي التعابير المنطقية حيث

%word% can occur multiple times, separated by a "<"

ويتم تعريف٪ كلمة٪ كما ".*?"|[a-zA-Z]+ لذلك أنا كتبت

(".*"|[a-zA-Z]+)([<](".*"|[a-zA-Z]+))*

هل هناك أي طريقة يمكن أن يتقلص ذلك باستخدام مجموعة التقاط؟

(".*"|[a-zA-Z]+)([<]\1)*, 

ولكن لا أعتقد أن \1 يمكن استخدامها كما انها تريد ان يعني تكرار القبض على الأول، وأنا لا أعرف ما اعتقل لأنها يمكن أن تكون سلسلة مقتبسة أو كلمة واحدة.

وأي شيء مماثل أستطيع استخدام للإشارة مطابقة مجموعة كتب سابقا. أنا أعمل في C #.

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

المحلول 2

وبما أن الدعم ليس هناك حتى الآن طريقة لميزة، قدم لي بديل سلسلة، حيث كتبت كلمات معينة ولست بحاجة ليحل محله التعابير المنطقية باستخدام ٪٪ ثم كتب البرنامج ليحل محله من التعبير العادي المحدد لل النص.

نصائح أخرى

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

String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top