Amer Abdallah نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 أريد استبدال المسافات البيضاء بشرطة سفلية _ في نص معين لإنشاء عناوين Slug. لذلك أريد تحويل النص على النحو التالي: "How can this be achieved" => "How_can_this_be_achieved" لكن المشكلة أن النص قد يحتوي على مسافات مختلف مثل \n أو \t أنا أستخدم Python مع جانغو Django. هل يمكن حل ذلك باستخدام regular expressions؟ 2 اقتباس
1 سامح أشرف نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 يمكنك أن تقوم بذلك من خلال regular expressions كالتالي: import re def makeSlug(myString): # قم بإزالة جميع الأحرف بخلاف الكلمات (كل شيء باستثناء الأرقام والحروف) myString = re.sub(r"[^\w\s]", '', myString) # استبدل كل المسافات البيضاء بشرطة سفلية underscore myString = re.sub(r"\s+", '_', myString) return s print(makeSlug("How can this be achieved")) # Output: How_can_this_be_achieved الطريقة السابقة تقوم بإزالة كل الحروف والرموز (ماعدا الأرقام والحروف اللاتينية) وتستبدل كل المسافات بعلامة شرطة سفلية underscore _ كما أن Django يحتوي على دالة slugify بالفعل التي تقوم بعمل عنوان slug من خلال أي نص، على النحو التالي: from django.template.defaultfilters import slugify slugify("How can this be achieved") # How-can-this-be-achieved كما يفضل أن تستخدم الشرطات dashes - لأنه، لفترة طويلة، تعاملت محركات البحث مع الشرطات كفواصل للكلمات، وبذلك تحصل على نتيجة أفضل في عمليات البحث عن كلمات متعددة long keywords. 1 اقتباس
0 Ali Haidar Ahmad نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 إضافةً إلى استخدام مكتبة التعابير المنتظمة كما أشار سامح يمكنك القيام بالتالي: # - توضع ضمن قائمة ثم نعيد تجميعها كلسلسلة بحيث يفصل بينهم tokens للتخلص من الفراغات نقوم بتقسيم السلسلة إلى url="How can this be achieved" "-".join( url.split() ) # How-can-this-be-achieved # حتى في حالة وجود فراغات متتالية url="How can this be achieved" "-".join( url.split() ) # How-can-this-be-achieved اقتباس
السؤال
Amer Abdallah
أريد استبدال المسافات البيضاء بشرطة سفلية _ في نص معين لإنشاء عناوين Slug. لذلك أريد تحويل النص على النحو التالي:
لكن المشكلة أن النص قد يحتوي على مسافات مختلف مثل \n أو \t
أنا أستخدم Python مع جانغو Django. هل يمكن حل ذلك باستخدام regular expressions؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.