C#字符串模糊匹配的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#字符串模糊匹配的问题相关的知识,希望对你有一定的参考价值。

本人新学C# 有关于字符串模糊匹配的问题请求诸位大神指点迷津
有三个texbox 分别为 A\B\C 三个
代码如下
string s = A文本.Text + B文本.Text + C文本.Text;
Console.WriteLine(s);
int i = s.IndexOf("");
int j = s.IndexOf("");
string ss = s.Substring(i - 1,j - i + 2);
Console.WriteLine(ss);
Console.ReadLine();
结果文本.Text = ss;

当我在三个文本中输入 我是CD小明我爱CQ北京天CC安门 时,得到的结果 只有一个 :

是CD小明

请问如何才能在 结果文本 中显示三个 或者三个以上 的内容 就是 里面的内容全部都显示出来 ?

//方法一
List<string> list = new List<string>();//list用于存储结果
string s = "我是CD小明我爱CQ北京天CC安门";
int i = s.IndexOf("");
int j = s.IndexOf("");
while (i > -1 && j > -1)

    string ss = s.Substring(i + 1, j - i -1);
    list.Add(ss);
    s = s.Substring(j + 1);
    i = s.IndexOf("");
    j = s.IndexOf("");

foreach (string str in list) MessageBox.Show("1 "+str);//循环输出list内容


//方法二
List<string> list2 = new List<string>();
s = "我是CD小明我爱CQ北京天CC安门";
MatchCollection mc= Regex.Matches(s, @"(.*?)");
foreach (Match m in mc)
    list2.Add(m.Groups[1].Value);
foreach (string str in list2) MessageBox.Show("2 "+str);//循环输出list内容

追问

不要用对话框的方式输出 怎么能把list里面存储的结果打到 结果文本.text中呢?

追答

随便改下就行了,你想怎么显示,比如说全连在一起
foreach (string str in list) 结果文本.Text+=str;
如果你是想分三行显示,那就把结果文本的multiline属性设为true,然后
foreach (string str in list) 结果文本.Text+=str+"\r\n";

参考技术A string s = A文本.Text + B文本.Text + C文本.Text;
string text = "";
while (true)

    int i = s.IndexOf("");
    int j = s.IndexOf("");
    if (i != -1 && j != -1)
    
       string tmp = s.Substring(0, j);
       s = s.Substring(j + 1);
       text += tmp.Substring(i + 1);
    
    else
    
       break;
    

Console.WriteLine(text);

C# EF 字符串模糊查询完整实例 lambda

判断是否为null
whereExpression = p =>string.IsNullOrWhiteSpace(p.RealName)
等同于
SELECT * FROM tbl WHERE RealNameIS NULL

判断以什么开头,前缀匹配
whereExpression = p =>p.RealName.StartsWith("AA")
等同于
SELECT * FROM tbl WHERE RealName like \'AA%\'

判断以什么结尾,后缀匹配

whereExpression = p =>p.RealName.EndWith("AA")
等同于
SELECT * FROM tbl WHERE RealName like \'%AA\'

包含查询
whereExpression = p =>p.RealName.Contains("AA")
等同于
SELECT * FROM tbl WHERE RealName like \'%AA%\'

其他自定义特殊 查询

var pattern = $"______{str}%"; //‘_’ like中的占位符 此处查询第7位为指定字符的数据,str为变量
whereExpression = p => SqlFunctions.PatIndex(pattern, p.RealSampleNo) > 0

等同于
SELECT * FROM tbl WHERE RealName like \'______{str}%\'

** 长度查询 **
whereExpression = p =>p.RealName.Length==1
** 字节长度查询 **
whereExpression = p =>SqlFunctions.DataLength(p.RealName)==8

以上是关于C#字符串模糊匹配的问题的主要内容,如果未能解决你的问题,请参考以下文章

c# 实现ComboBox自动模糊匹配

求一个基于java的模糊匹配算法

python模糊匹配库能否定制匹配关系

string模糊匹配*代表多个

java模糊匹配 字符串匹配某个字符串

oracle中如何使用like来进行模糊匹配