指定された文字を含む文字列内の単語の出現をマスクする正規表現

ここに画像の説明を挿入

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using LYF.Framework.Commons;
using WindowsFormsApp1.Validation;

namespace WindowsFormsApp1
{
    
    
    public partial class Form1 : Form
    {
    
    

        //过滤字母的字典     
     string[] filterWords = {
    
    
             "\\(.*?\\)",
            @"^*[▲|★|◇|◆|>|<|□|#]",
            @"[A-Za-z0-9]{1,9}$",
            @"[0 - 9]$",
            @"^*[0-9\.]",
            @"^[a - zA - Z]",
            @"\[.*\]",
            @"\(.*\)",
            @"\<.*\>",
            @"\{.*\}",
            @"\(.*\)", @"\【.*\】",
            @"^[▲|★|◇|◆|>|<|□|#]",
            @"[▲|★|◇|◆|>|<|□|#]$",
            @"[▲|★|◇|◆|>|<|□|#]$",
            @"\\s+"
           
      };
        string strExp = @"<[^>]+>|</[^>]+>";

        string str0 = "(乙10%)丙泊酚中/長鏈脂肪";//整蛊紫金丸
        string str01 = "(乙10%)整蛊甲紫/金丸甲";//整蛊紫金丸
        string str02 = "(5mg)整蛊甲紫(加洛寧)";//整蛊紫金丸
        string str11 = "(甲)10整蛊甲紫金丸甲";//整蛊紫金丸
        string str12 = "乙10整蛊紫金丸(丙)";//整蛊紫金丸
        string str13 = "丙10整蛊紫金丸乙";//整蛊紫金丸

        string str = "▲乙10整蛊紫金丸▲";//整蛊紫金丸
        string str1 = "◇(乙10)整蛊紫金丸H";//整蛊紫金丸
        string str2 = "★磁共振A扫描>15T";//磁共振扫描
        string str3 = "[98]磁共振扫{描}";//磁共振扫描
        string str4 = "09磁共-振扫描12345";//磁共振扫描
        string str5 = "[甲]◇磁共振扫.描J2";//磁共振扫描
        string str51 = "(甲)◇磁共振CT扫.描J2";//磁共振扫描
        string str6 = "甲磁共<振扫描>j2";//甲核磁磁共振扫描<>
        string str7 = "[乙]磁共{振扫描}IGM";//磁共振扫描
        string str8 = "A磁共振[乙]扫描IGM";//磁共振扫描
        string str9 = "维生素(甲)VC泡腾片";//磁共维生素VC泡腾片
        string str62 = "牵引(土法牵引减收)";//甲核磁磁共振扫描<>
        string str631 = "<乙甲限>(澳博达)盐酸西替";//甲核磁磁共振扫描<>
        string str63 = "<乙甲限>(澳博达)盐酸西替";//甲核磁磁共振扫描<>
        string str621 = "牵引(土法牵引减收)";//甲核磁磁共振扫描<>
        string str6311 = "(诊查费)";//甲核磁磁共振扫描<>
        string str6211 = "(诊查费)";//甲核磁磁共振扫描<>
        string str62111 = "肺力咳合剂#";//甲核磁磁共振扫描<>
        string str621111 = "当归□";//甲核磁磁共振扫描<>
        string str6211113 = "三拗片【片】";//甲核磁磁共振扫描<>
        string str6211114 = "茯苓颗粒◆□(A)";//甲核磁磁共振扫描<>

        string str6211115 = "(乙甲)蓝芩口服液(基)";//甲核磁磁共振扫描<>

        // [aa][bb][cc][dd][ee]
        //[甲]磁共振扫描J2 输出:磁共振扫描
        //(甲)磁共振扫描J2输出:磁共振扫描
        // 甲磁共振扫描J2输出:甲磁共振扫描
        public Form1()
        {
    
    
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
    
    
            string strTemp50 = StringExtensionMethod.RemoveWords(str11, filterWords);
            string strTemp51 = StringExtensionMethod.RemoveWords(str12, filterWords);

            //string   pattern = Regex.Replace(str5, @"\[.*\]", "");//过滤[]


            //CRegex.IsMatch(str5,)
            //string dd =  StringExtensionMethod.Substring(str5, "\\[", "\\]");
            //CRegex.Replace(str,"", list);、、
            //if(str.StartsWith()

            string strTemp1 = StringExtensionMethod.RemoveWords(str, filterWords);
            string strTemp2 = StringExtensionMethod.RemoveWords(str1, filterWords);
            string strTemp3 = StringExtensionMethod.RemoveWords(str2, filterWords);
            string strTemp4 = StringExtensionMethod.RemoveWords(str3, filterWords);
            string strTemp5 = StringExtensionMethod.RemoveWords(str4, filterWords);

            string strTemp7 = StringExtensionMethod.RemoveWords(str6, filterWords);
            string strTemp71 = StringExtensionMethod.RemoveWords(str7, filterWords);
            string strTemp8 = StringExtensionMethod.RemoveWords(str9, filterWords);






            //string strTemp92 = StringUtil.RemovePrefix(str1, filterWords1);
            //string strTemp91 = StringUtil.RemovePrefix(str, filterWords1);
            //string strTemp110 = StringUtil.RemovePrefix(str3, filterWords1);
            //string strTemp11021 = StringUtil.RemovePrefix(str4, filterWords1);
            //string strTemp9 = StringUtil.RemovePrefix(str8, filterWords1);


            //string strTemp911 = StringUtil.RemovePostfix(strTemp9, filterWords1);
            //string strTemp10 = StringUtil.RemovePostfix(str6, filterWords1);


            //string strTemp911 = StringUtil.RemovePostfix(str1, filterWords1);

            //string strTemp1101 = StringUtil.RemovePrefix(strTemp911, filterWords1);
           
        }
    }
}

using Microsoft.VisualBasic;
using System;
using System.Text.RegularExpressions;

namespace WindowsFormsApp1.Validation
{
    
    
    public static class StringExtensionMethod
    {
    
     
        /// <summary>
       /// 从字符串中替换指定的字符,可以指定是否大小写敏感。
       /// </summary>
       /// <param name="str">输入的字符串</param>
       /// <param name="find">查找字符串</param>
       /// <param name="replacement">替换字符串</param>
       /// <param name="caseSensitive">是否大小写敏感</param>
       /// <returns></returns>
        public static String Replace(this String str, String find, String replacement, bool caseSensitive)
        {
    
    
            if (caseSensitive)
                return Microsoft.VisualBasic.Strings.Replace(str, find, replacement, 1, -1, CompareMethod.Binary);
            else
                return Microsoft.VisualBasic.Strings.Replace(str, find, replacement, 1, -1, CompareMethod.Text);
        }
        /// <summary>
        /// 用字符串中的另一个字符代替给定的字符。 
        /// 替换不区分大小写
        /// </summary>
        /// <param name="val"></param>
        /// <param name="charToReplace">要替换的字符</param>
        /// <param name="replacement">替换的字符</param>
        /// <returns>替换字符串的字符串副本</returns>
        public static string CaseInsenstiveReplace(this string val, char charToReplace, char replacement)
        {
    
    
            Regex regEx = new Regex(charToReplace.ToString(), RegexOptions.IgnoreCase | RegexOptions.Multiline);
            return regEx.Replace(val, replacement.ToString());
        }
        /// <summary>
        /// 用字符串中的另一个字符串代替给定的字符串。 
        /// 替换不区分大小写
        /// </summary>
        /// <param name="val"></param>
        /// <param name="stringToReplace">要替换的字符串</param>
        /// <param name="replacement">要替换的字符串</param>
        /// <returns>替换字符串的字符串副本</returns>
        public static string CaseInsenstiveReplace(this string val, string stringToReplace, string replacement)
        {
    
    
            Regex regEx = new Regex(stringToReplace, RegexOptions.IgnoreCase | RegexOptions.Multiline);
            return regEx.Replace(val, replacement);
        }


        /// <summary>
        /// 删除字符串中出现的单词,匹配区分大小写。
        /// </summary>
        /// <param name="val"></param>
        /// <param name="filterWords">要从字符串中删除的单词数组</param>
        /// <returns>删除单词的字符串副本</returns>
        public static string RemoveWords(this string val, params string[] filterWords)
        {
    
    
            return MaskWords(val, char.MinValue, filterWords);
        }

        /// <summary>
        /// 用给定字符掩码字符串中的出现的单词
        /// </summary>
        /// <param name="val"></param>
        /// <param name="mask">要应用的字符掩码</param>
        /// <param name="filterWords">要替换的单词</param>
        /// <returns>应用掩码的字符串副本</returns>
        public static string MaskWords(this string val, char mask, params string[] filterWords)
        {
    
    
            string stringMask = mask == char.MinValue ?
               string.Empty : mask.ToString();
            string totalMask = stringMask;

            foreach (string s in filterWords)
            {
    
    
                Regex regEx = new Regex(s, RegexOptions.IgnoreCase | RegexOptions.Multiline);
                if (stringMask.Length > 0)
                {
    
    
                    for (int i = 1; i < s.Length; i++)
                        totalMask += stringMask;
                }

                val = regEx.Replace(val, totalMask);
                totalMask = stringMask;
            }
            return val;
        }
    }
}

おすすめ

転載: blog.csdn.net/kalvin_y_liu/article/details/128120375