Exemple #1
0
        /// <summary>
        /// Normalize persian text and remove white spaces
        /// </summary>
        /// <param name="text"></param>
        public static string NormalizePersianTitle(this string title)
        {
            const PersianNormalizers normalizers = PersianNormalizers.ApplyPersianYeKe |
                                                   PersianNormalizers.ApplyHalfSpaceRule |
                                                   PersianNormalizers.CleanupSpacingAndLineBreaks |
                                                   PersianNormalizers.CleanupExtraMarks |
                                                   PersianNormalizers.ConvertDotsToEllipsis |
                                                   PersianNormalizers.ConvertEnglishQuotes |
                                                   PersianNormalizers.FixDashes |
                                                   PersianNormalizers.RemoveAllKashida |
                                                   PersianNormalizers.RemoveDiacritics |
                                                   PersianNormalizers.RemoveOutsideInsideSpacing |
                                                   PersianNormalizers.CleanupZwnj;

            return(title.NormalizePersianText(normalizers).Replace(" ", ""));
        }
        /// <summary>
        /// Persian Text Normalizer
        /// </summary>
        /// <param name="text"></param>
        /// <param name="normalizers"></param>
        /// <returns></returns>
        public static string NormalizePersianText(this string text, PersianNormalizers normalizers)
        {
            if (string.IsNullOrEmpty(text))
            {
                return(string.Empty);
            }

            if (normalizers.HasFlag(PersianNormalizers.ApplyPersianNumbers))
            {
                text = text.ToPersianNumbers();
            }

            if (!text.ContainsFarsi())
            {
                return(text);
            }

            if (normalizers.HasFlag(PersianNormalizers.RemoveDiacritics))
            {
                text = text.RemoveDiacritics();
            }

            if (normalizers.HasFlag(PersianNormalizers.ApplyPersianYeKe))
            {
                text = text.ApplyCorrectYeKe();
            }

            if (normalizers.HasFlag(PersianNormalizers.ApplyHalfSpaceRule))
            {
                text = text.ApplyHalfSpaceRule();
            }

            if (normalizers.HasFlag(PersianNormalizers.CleanupZwnj))
            {
                text = text.NormalizeZwnj();
            }

            if (normalizers.HasFlag(PersianNormalizers.FixDashes))
            {
                text = text.NormalizeDashes();
            }

            if (normalizers.HasFlag(PersianNormalizers.ConvertDotsToEllipsis))
            {
                text = text.NormalizeDotsToEllipsis();
            }

            if (normalizers.HasFlag(PersianNormalizers.ConvertEnglishQuotes))
            {
                text = text.NormalizeEnglishQuotes();
            }

            if (normalizers.HasFlag(PersianNormalizers.CleanupExtraMarks))
            {
                text = text.NormalizeExtraMarks();
            }

            if (normalizers.HasFlag(PersianNormalizers.RemoveAllKashida))
            {
                text = text.NormalizeAllKashida();
            }

            if (normalizers.HasFlag(PersianNormalizers.CleanupSpacingAndLineBreaks))
            {
                text = text.NormalizeSpacingAndLineBreaks();
            }

            if (normalizers.HasFlag(PersianNormalizers.RemoveOutsideInsideSpacing))
            {
                text = text.NormalizeOutsideInsideSpacing();
            }

            return(text);
        }