پرسش
چگونه یک رشته را با چندین جداکننده مختلف به کلمات تقسیم کنیم؟
How to split strings into words with multiple word boundary delimiters?
چطور میتوانم یک رشته متنی رو که در اون کلمات با چندین نوع جداکننده (مثل فاصله، نقطه، ویرگول و ...) از هم جدا شدن، به صورت کلمات مجزا تقسیم کنم؟
پاسخ
رضا دولتی
عاشق برنامه نویسی و هوش مصنوعی!
برای این کار میتونیم از تابع re.split() در پایتون استفاده کنیم. این تابع اجازه میده که با استفاده از یک الگوی (regular expression) دلخواه، رشته رو به بخشهای مختلف تقسیم کنیم. تو این مورد خاص، میتونیم یک الگوی ساده رو تعریف کنیم که شامل تمام جداکنندههایی باشه که میخوایم رشته بر اساس اونها تقسیم بشه.
به این صورت میتونی عمل کنی:
import re # This is the input string you want to split text = "Hello, world! This is an example: string; with various delimiters." # Define the pattern for the delimiters # The pattern splits on any sequence of whitespace or punctuation characters words = re.split(r'[.,;:\s]\s*', text) # Remove empty strings from the result words = list(filter(None, words)) # Output the resulting list of words print(words)
- در این مثال، re.split() بر اساس الگوی [.,;:\s]\s* کار میکنه. این الگو میگه که هر جایی که یکی از این جداکنندهها (مثل نقطه، ویرگول، فاصله، ...) رو پیدا کرد، اونجا رو به عنوان مرز در نظر بگیره و رشته رو تقسیم کنه.
- در انتها، از filter(None, words) استفاده میکنیم تا مطمئن بشیم که رشتههای خالی از لیست حذف میشن.
با این روش، میتونی رشتههایی که با جداکنندههای مختلف از هم جدا شدن رو به راحتی به کلمات مجزا تبدیل کنی.
پاسخ: 1403/06/07
آخرین آپدیت: 1403/08/17