[Python] بايثون: سلسلة انقسام مع محددات متعددة



Answers

هل str.replace('; ', ', ') ثم str.split(', ')

Question

هذا السؤال لديه بالفعل إجابة هنا:

لقد وجدت بعض الإجابات عبر الإنترنت ، ولكن ليس لدي أي خبرة في التعبيرات العادية ، والتي أعتقد أنها ضرورية هنا.

لدي سلسلة يجب تقسيمها إما بعلامة "؛" أو "،" أي ، يجب أن تكون إما فاصلة منقوطة أو فاصلة متبوعة بمسافة. يجب ترك الفواصل الفردية دون مسافات زائدة دون مساس

سلسلة المثال:

"b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3], mesitylene [000108-67-8]; polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]"

يجب تقسيمها إلى قائمة تحتوي على ما يلي:

('b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3]' , 'mesitylene [000108-67-8]', 'polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]') 



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

>>> a='Beautiful, is; better*than\nugly'
>>> import re
>>> re.split('; |, |\*|\n',a)
['Beautiful', 'is', 'better', 'than', 'ugly']

>>> b='1999-05-03 10:37:00'
>>> re.split('- :', b)
['1999-05-03 10:37:00']

عن طريق وضع المحددات بين قوسين مربعين يبدو أنها تعمل بشكل أكثر فعالية.

>>> re.split('[- :]', b)
['1999', '05', '03', '10', '37', '00']





Links