关于中文字符串匹配的问题

sinat_37651655 2017-03-16 01:45:57
在winform中,设有textbox,richtextbox,button三个控件。有两个字符串str1和str2.
例如str1="你是我的小用牙齿地方, 一点多了一点额十大到处撒出色的"
str2="我的买了一个果,说到底几架飞机速度速度速度集合分哈哈黑乎乎的,还有很多的
1.假如
我在textbox中输入“青小草”或者“青 草”,点击按钮,在richtextbox中显示:str1.(青草两个字按顺序出现在str1中,不在str2中)
2.假如
我输入“苹 @ 果”或者“苹果”,richtextbox显示str1+<换行>+str2。(苹果两个字在两个串中都有按顺序出现)

str1....str[n],固定,但是输入的内容不是固定的,请问怎么实现(实现例子中的就可以了)?
...全文
155 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-03-17
  • 打赏
  • 举报
回复
不是很理解你的意思
是这样吗
        static void Main(string[] args)
{
var s = "青小草,青@草";
var d = s.Select(x => x).ToList();
//Console.WriteLine("{0} {1}", string.Join(", ", d), d.GetType());
var str1 = "你是我的小苹用牙齿地方果, 一点多了青一点额十大到处撒出色的草";
var str2 = "我的买了一个果,说到底几架飞机苹速度速度速度集合草分哈哈黑乎青乎的果,还有很多的蔬大菜。";
var sb = new StringBuilder();
foreach (var c in str1+"\n"+str2)
{
if (d.Contains(c)) sb.Append(new char[] { '[', c, ']' });
else sb.Append(c);
}
Console.WriteLine(sb.ToString());
Console.ReadKey();
}
sinat_37651655 2017-03-17
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
string[] arr = new string[]
    {
        "你是我的小苹用牙齿地方果, 一点多了青一点额十大到处撒出色的草",
        "我的买了一个果,说到底几架飞机苹速度速度速度集合草分哈哈黑乎青乎的果,还有很多的蔬大菜"
    };

string input = "苹@果";//青@草
input = Regex.Replace(input, @"[^\u4e00-\u9fa5]", string.Empty);
foreach(var str in arr)
{
    int index = 0;
    foreach (var c in input)
    {
        index = str.IndexOf(c, index);
        if(index<0)
        {
            break;
        }
    }
    if (index >= 0)
    {
        Console.WriteLine(str);
    }
}
/////////////////////////////////////////////////////////////////////// 谢谢您的回复语。如果我要实现输入“青小草,青@草,或者 小苹果”都能正确识别呢?
  • 打赏
  • 举报
回复
string[] arr = new string[]
    {
        "你是我的小苹用牙齿地方果, 一点多了青一点额十大到处撒出色的草",
        "我的买了一个果,说到底几架飞机苹速度速度速度集合草分哈哈黑乎青乎的果,还有很多的蔬大菜"
    };

string input = "苹@果";//青@草
input = Regex.Replace(input, @"[^\u4e00-\u9fa5]", string.Empty);
foreach(var str in arr)
{
    int index = 0;
    foreach (var c in input)
    {
        index = str.IndexOf(c, index);
        if(index<0)
        {
            break;
        }
    }
    if (index >= 0)
    {
        Console.WriteLine(str);
    }
}

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧