def clean_text(text): text = text.strip() # حذف فاصله اضافه text = re.sub(r'\s+', ' ', text) # چند فاصله پشت سرهم -> یک فاصله text = re.sub(r'[^\w\s]', '', text) # حذف علائم نگارشیreturn textraw =" سلام!! دنیای پایتون؟؟ "print(clean_text(raw))
سلام دنیای پایتون
مثال ۴: شمارش کلمات یک متن
text ="پایتون زبان خوبی است. پایتون ساده است."words = re.findall(r'\w+', text)print(len(words))from collections import Counterprint(Counter(words))
مثال ۵: استخراج اعداد از یک رشته و جمع کردن آنها
text ="قیمتها: 120, 45.5, 900"numbers = re.findall(r'\d+\.?\d*', text)numbers = [float(n) for n in numbers]print(sum(numbers))
مثال ۶: تبدیل snake_case به camelCase (ترکیب split + join)
def to_camel_case(text): parts = text.split('_')return parts[0] +''.join(p.title() for p in parts[1:])print(to_camel_case("this_is_snake_case"))
thisIsSnakeCase
مثال ۷: بررسی معتبر بودن رمز عبور (ترکیب چند شرط با regex)
def is_strong_password(pw):iflen(pw) <8:returnFalseifnot re.search(r'[A-Z]', pw): # حداقل یک حرف بزرگreturnFalseifnot re.search(r'\d', pw): # حداقل یک عددreturnFalsereturnTrueprint(is_strong_password("Abc12345")) # Trueprint(is_strong_password("abc")) # False
جمعبندی
تمرین اصلی این بخش: ترکیب split، join، replace با re.findall و re.sub برای حل مسائل واقعی پردازش متن — معمولاً راهحل نهایی از ترکیب چند تا از این ابزارها بهدست میاد، نه فقط یکی