C# 玩家暱稱屏蔽敏感字眼

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   

功能:使用正則  對玩家暱稱處理,如果含有 屏蔽字型檔裡的敏感字眼進行屏蔽。已封裝成dll

 

1.屏蔽字型檔處理成所需要的正則格式:(所需Regex格式:".*((XX)|(XX)|(XX)|....).*")

 

2.FilterHelper類中:

public sealed class FilterHelper    {        private Regex r;        #region Singleton        private static readonly FilterHelper instance = new FilterHelper();        public static FilterHelper Instance { get { return instance; } }        private FilterHelper() { }        #endregion        private void ReadRex()        {            string path = AppDomain.CurrentDomain.BaseDirectory;            string textFile = path + "FilterSt.txt";            FileStream fs;            if (File.Exists(textFile))            {                fs = new FileStream(textFile, FileMode.Open, FileAccess.Read);                using (fs)                {                    ////TextRange text = new TextRange(richTextBox1.Document.ContentStart, richTextBox1.Document.ContentEnd);                    //text.Load(fs, DataFormats.Text);                    //建立一個容量4M的數組                    byte[] byteData = new byte[fs.Length];                    //從檔案中讀取資料寫入到數組中(數組對象,從第幾個開始讀,讀多少個)                    //返回讀取的檔案內容真實位元組數                    int length = fs.Read(byteData, 0, byteData.Length);                    //如果位元組數大於0,則轉碼                    if (length > 0)                    {                        //將數組轉以UTF-8字元集編碼格式的字串                        var filterst = ".*(" + Encoding.UTF8.GetString(byteData) + ").*";                        r=new Regex(@filterst);                    }                }            }            else            {                throw new FileNotFoundException("找不到屏蔽字型檔");            }        }        /// <summary>        /// 判斷是否屏蔽        /// </summary>        /// <param name="input"></param>        /// <returns></returns>        public bool IsStFilter(string input)        {            if (string.IsNullOrEmpty(input))            {                throw new Exception("輸入不可為空");            }            if (r == null)            {                ReadRex();            }            if (r.IsMatch(input))            {                return true;            }            else            {                return false;            }        }    }
View Code

 

3.需要判斷是否屏蔽的地方:直接調用FilterHelper.Instance.IsStFilter(判斷的暱稱)

 

備忘:1、dll中只能包含代碼,資源檔必須複製到對應的輸出路徑。

   2、屏蔽字型檔的txt要複製到項目的輸出路徑,也就是 AppDomain.CurrentDomain.BaseDirectory說對應的路徑。

 

Demo串連:http://download.csdn.net/detail/ofat___lin/7615715

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.