کتابخانه‌ی استاندارد · متن

عربی arabic

یکسان‌سازی متن فارسی و عربی: ی و ک عربی، اعراب، کشیده، نیم‌فاصله و رقم‌ها؛ برای جستجو و مقایسه.

واردسازی عربی

متن فارسی از منبع‌های مختلف یک‌جور نمی‌رسد. یکی «كتاب» را با کاف عربی می‌نویسد و دیگری با کاف فارسی؛ یکی اعراب می‌گذارد، یکی کشیده (ـــ)، و بعضی متن‌ها، مثلاً آن‌هایی که از PDF آمده‌اند، شکل‌های نمایشی حرف‌ها را دارند. به چشم همه یکی‌اند، اما کامپیوتر آن‌ها را متفاوت می‌بیند و جستجو شکست می‌خورد.

بسته‌ی عربی این تفاوت‌ها را از بین می‌برد. هنجارسازی با پرچم‌هایی که انتخاب می‌کنید کار می‌کند؛ پرچم‌ها را با + با هم ترکیب کنید. برای بیشتر کارها هنجارسازی فارسی یا کلید جستجو کافی است.

پایاها و متغیرها

یکسان سازی حروف FoldLetters

پایا یکسان سازی حروف: صحیح۳۲ = 1
پرچم: حرف‌های عربی را به هم‌تای فارسی‌شان تبدیل می‌کند؛ «ي» به «ی» و «ك» به «ک».
arabic-Normalize.salam
واردسازی عربی

روال ریشه:
    متن := "كتابٌ عربيّة ـــ ٣٤ ﻻ"
    سرچاپ عربی.هنجارسازی فارسی(متن)
    سرچاپ عربی.هنجارسازی(متن، عربی.حذف اعراب)
    سرچاپ عربی.هنجارسازی(متن، عربی.یکسان سازی حروف + عربی.یکسان سازی رقم ها)
    سرچاپ عربی.هنجارسازی("می‌خواهم"، عربی.حذف نیم فاصله)
    سرچاپ عربی.هنجارسازی("أحمد إيران"، عربی.یکسان سازی الف)
    سرچاپ عربی.هنجارسازی("مدرسة"، عربی.یکسان سازی ته گرد)
    سرچاپ عربی.هنجارسازی("ﻻ ﻣﺮﺣﺒﺎ"، عربی.یکسان سازی شکل نمایشی)
    سرچاپ عربی.هنجارسازی("ســلام"، عربی.حذف کشیده)
پایان
خروجیکتابٌ عربیّة ٣٤ لا كتاب عربية ـــ ٣٤ ﻻ کتابٌ عربیّة ـــ 34 ﻻ میخواهم احمد ايران مدرسه لا مرحبا سلام

حذف اعراب StripHarakat

پایا حذف اعراب: صحیح۳۲ = 2
پرچم: اعراب (فتحه، کسره، ضمه، تنوین، تشدید و…) را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-Normalize.salam

حذف کشیده StripTatweel

پایا حذف کشیده: صحیح۳۲ = 4
پرچم: کشیده (ـ) را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-Normalize.salam

یکسان سازی رقم ها FoldDigits

پایا یکسان سازی رقم ها: صحیح۳۲ = 8
پرچم: رقم‌های فارسی و عربی را به رقم انگلیسی تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-Normalize.salam

یکسان سازی الف FoldAlef

پایا یکسان سازی الف: صحیح۳۲ = 16
پرچم: شکل‌های مختلف الف (أ، إ، آ) را به «ا» تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-Normalize.salam

یکسان سازی ته گرد FoldTehMarbuta

پایا یکسان سازی ته گرد: صحیح۳۲ = 32
پرچم: «ة» را به «ه» تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-Normalize.salam

حذف نیم فاصله StripZWNJ

پایا حذف نیم فاصله: صحیح۳۲ = 64
پرچم: نیم‌فاصله را حذف می‌کند تا «می‌خواهم» و «میخواهم» یکی شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-Normalize.salam

یکسان سازی شکل نمایشی FoldPresentation

پایا یکسان سازی شکل نمایشی: صحیح۳۲ = 128
پرچم: شکل‌های نمایشی حرف‌ها (مثل «ﻻ» و «ﻣ») را به حرف‌های معمولی برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-Normalize.salam

روال‌ها

خط عربی است IsArabicScript

روال خط عربی است(cp: صحیح): منطقی
اگر نویسه از خط عربی باشد، که حرف‌های فارسی هم جزو آن‌اند، درست برمی‌گرداند.
arabic-IsArabicScript.salam
واردسازی عربی

روال ریشه:
    سرچاپ عربی.خط عربی است(۱۵۸۸)، عربی.خط عربی است(۶۵)
    سرچاپ عربی.اعراب است(۱۶۱۴)، عربی.اعراب است(۱۵۸۸)
    سرچاپ عربی.کشیده است(۱۶۰۰)، عربی.کشیده است(۱۵۸۸)
پایان
خروجیtrue false true false true false

اعراب است IsHaraka

روال اعراب است(cp: صحیح): منطقی
اگر نویسه یکی از اعراب باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-IsArabicScript.salam

کشیده است IsTatweel

روال کشیده است(cp: صحیح): منطقی
اگر نویسه کشیده (ـ) باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-IsArabicScript.salam

هنجارسازی Normalize

روال هنجارسازی(s: رشته، flags: صحیح): رشته
متن را با پرچم‌هایی که داده‌اید یکسان می‌کند. هر پرچمی که نیاورید، آن جنبه‌ی متن دست‌نخورده می‌ماند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-Normalize.salam

هنجارسازی فارسی NormalizePersian

روال هنجارسازی فارسی(s: رشته): رشته
یکسان‌سازی پیش‌فرض برای متن فارسی: حرف‌های عربی را فارسی می‌کند، کشیده را برمی‌دارد و شکل‌های نمایشی را باز می‌کند، ولی اعراب، نیم‌فاصله و رقم‌ها را نگه می‌دارد تا متن همان‌طور که نوشته شده خوانا بماند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-Normalize.salam

کلید جستجو SearchKey

روال کلید جستجو(s: رشته): رشته
کلیدی برای جستجو می‌سازد: همه‌ی پرچم‌ها را روی متن اعمال می‌کند تا دو نوشته‌ای که خواننده یکی می‌بیند، کلید یکسان داشته باشند. کلید را برای نمایش به کار نبرید؛ فقط برای مقایسه و نمایه‌سازی است.
arabic-SearchKey.salam
واردسازی عربی

روال ریشه:
    سرچاپ عربی.کلید جستجو("كتابٌ")، عربی.کلید جستجو("کتاب")
    سرچاپ عربی.یکسان تقریبی("مي‌خواهم"، "میخواهم")
    سرچاپ عربی.یکسان تقریبی("سلام"، "کلام")
پایان
خروجیکتاب کتاب true false

یکسان تقریبی EqualLoose

روال یکسان تقریبی(a: رشته، b: رشته): منطقی
دو متن را بعد از ساختن کلید جستجو مقایسه می‌کند؛ «مي‌خواهم» و «میخواهم» یکی حساب می‌شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: arabic-SearchKey.salam