`
ccjsjymg
  • 浏览: 62234 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

字符串匹配

阅读更多
/**************************************** 
字符串匹配问题:字符“*”可代表任意多个的任意字符。 
输入:一个不带“*”的字符串和一个通配字符串    
输出:如果匹配,则输出“Matched”;否则,输出“Not Matched” 
举例: 
例1:            例2:                 例3:             例4:              例5: 
abcdef           abcdef                abcdef            abcdef             abcdef  
abc*f            a**                   *f                 *d*f              *d 
Matched          Matched               Matched           Matched             Not Matched !
*****************************************/
#include "Match.h"
void StringMatch(char* srcString, char* matchString)
{
	int nSrcLen = strlen(srcString);
	int nCnt = 0;
	char* matchTemp = matchString;
	while(*srcString != 0)
	{
		if(*matchTemp == '*')//根据*代替需要匹配的字符
		{
			if(*(matchTemp+1) == '*')
			{
				++matchTemp;
			}
			if(*(matchTemp+1) != 0 && *srcString == *(matchTemp+1))
			{
				matchTemp += 2;

				if(*matchTemp == 0)
				{
					++nCnt;
					break;
				}
			}
			++srcString;
			if(*srcString == 0 && *(matchTemp+1) != 0)
			{
				break;
			}
			++nCnt;
		}else
		{
			if(*srcString == *matchTemp)
			{
				++matchTemp;
				if(*matchTemp == 0)
				{
					break;
				}
				++nCnt;
			}
			++srcString;
		}
	}
	if(nCnt == nSrcLen)
	{
		cout << "Matched" << endl;
	}else
	{
		cout << "Not Matched" << endl;
	}
}
分享到:
评论
1 楼 muyishuihan 2012-10-29  
public static boolean isMatching(String src,String des){

String des1 = des.replace("*", "\\w*");
des1 = des1.replace("?", "\\w{1}");
Pattern p = Pattern.compile(des1);
Matcher m = p.matcher(src);
return m.matches();
}

相关推荐

    带通配符的字符串匹配算法

    在IT领域,字符串匹配是计算机科学中的一个基本问题,尤其在文本处理、数据搜索和模式识别等场景中广泛应用。带通配符的字符串匹配算法则是这个领域的延伸,它允许在模式字符串中包含特殊字符,如星号(*)或问号(?),...

    C#中文文本匹配,字符串匹配,中文词语匹配,计算2个句子相似度

    C#中文文本匹配,字符串匹配,中文词语匹配,计算2个句子相似度 中文匹配C#中文文本匹配,字符串匹配,中文词语匹配,计算2个句子相似度 C#中文文本匹配,字符串匹配,中文词语匹配,计算多个句子相似度 C#中文文本...

    CUDA程序并行实现字符串匹配的操作

    2. **并行字符串匹配**:在CUDA中实现字符串匹配,关键在于如何有效地分布数据和任务。通常,可以将目标字符串和模式字符串分布在GPU的不同线程块和线程中,每个线程负责一部分匹配工作。例如,在KMP算法中,每个...

    C++ 字符串匹配

    C++ 字符串匹配 C++ 的字符串匹配是计算机科学中非常重要的一部分,它在许多领域都有广泛的应用,如数据压缩、模式识别、文本编辑等。在这一篇文章中,我们将详细介绍 C++ 中的字符串匹配算法,主要包括 Brute ...

    汇编语言-字符串匹配

    在本课程设计中,我们聚焦于一个特定的应用场景:字符串匹配。字符串匹配是计算机科学中一个基础但至关重要的问题,广泛应用于文本处理、搜索引擎、数据安全等领域。在汇编语言中实现字符串匹配,能帮助我们深入理解...

    柔性字符串匹配____中文阴影版PDF

    在深入探讨柔性字符串匹配这一主题之前,我们先来理解一下其基本概念与应用场景。字符串匹配是计算机科学中的一个核心问题,涉及到在一段文本(主字符串)中查找一个或多个模式(子字符串)的过程。传统的字符串匹配...

    Horspool字符串匹配输入增强技术

    【标题】:“Horspool字符串匹配输入增强技术” 在计算机科学中,字符串匹配是一个重要的算法问题,广泛应用于文本处理、搜索引擎、病毒扫描等领域。Horspool字符串匹配算法是一种高效的线性时间复杂度的字符串查找...

    PDF电子书《柔性字符串匹配》

    根据提供的信息,《PDF电子书《柔性字符串匹配》》主要探讨了与字符串匹配相关的算法知识。字符串匹配是计算机科学中的一个核心问题,在文本处理、搜索引擎、生物信息学等多个领域都有着广泛的应用。下面将从不同的...

    汇编语言字符串匹配问题

    在处理字符串匹配问题时,汇编语言能够提供极高的效率和精确的控制。"汇编语言字符串匹配问题"这个主题涉及到的是如何在汇编程序中实现对两个字符串进行比较,判断它们是否相等或者一个字符串是否为另一个的子串。 ...

    入侵检测技术中一种改进的字符串匹配算法的研究

    ### 入侵检测技术中一种改进的字符串匹配算法的研究 #### 概述 随着网络环境的日益复杂化,网络攻击事件频繁发生,如何有效监测和响应这些潜在威胁成为了网络安全领域的重要课题。入侵检测系统(IDS)作为网络安全...

    KMP字符串匹配模板

    ### KMP字符串匹配算法 #### 一、简介 KMP(Knuth-Morris-Pratt)算法是一种高效的字符串搜索算法,由Donald Knuth、James H. Morris和Vaughan Pratt三位计算机科学家共同提出。该算法的主要优点在于它能够有效地...

    字符串匹配算法ppt

    字符串匹配是计算机科学中一个基础且重要的问题,广泛应用于文本搜索、数据分析等领域。在这个主题中,我们将探讨三种经典的字符串匹配算法:穷举法、KMP(Knuth-Morris-Pratt)算法和BM(Boyer-Moore)算法。 1. *...

    有穷自动机字符串匹配小软件

    在这个“有穷自动机字符串匹配小软件”中,开发者利用了这一概念来实现高效的字符串查找功能。VC++是Microsoft开发的一款集成开发环境,常用于编写Windows平台的应用程序,此处显然被用来开发这个小软件。 字符串...

    swift-OC的字符串匹配库.包含KMP匹配AC多模字符串匹配.

    在IT行业中,字符串匹配是计算机科学的一个重要领域,特别是在编程语言如Swift和Objective-C(OC)中。这里我们将深入探讨标题和描述中提到的“KMP匹配”和“AC多模字符串匹配”,以及它们在Swift开发中的应用。 ...

    字符串匹配算法总结

    字符串匹配是计算机科学中的一种基本问题,涉及到对文本数据的搜索和分析。在这个问题中,目标是找出一个较长的字符串(匹配串)中是否存在一个较短的子串(模式串)。这里我们将深入探讨几种常见的字符串匹配算法,...

    安卓字符串匹配加截取

    本文将深入探讨在安卓2.2到5.1.1版本中如何进行字符串匹配与截取,并提供相关的函数说明。 首先,让我们从字符串匹配开始。在安卓中,最常用的字符串匹配方法是使用正则表达式。`java.util.regex`包提供了`Pattern`...

    字符串匹配算法C代码实现

    字符串匹配是计算机科学中一个基础且重要的问题,广泛应用于文本处理、搜索引擎、数据挖掘等领域。在C语言中,实现字符串匹配算法通常涉及到对字符数组的操作和逻辑控制结构。本篇文章将详细探讨四种常见的字符串...

    汇编语言课程设计--字符串匹配

    汇编语言课程设计--字符串匹配 本课程设计的主要目的是为了让学生增进对汇编语言的认识,加强用汇编语言编程的能力,掌握汇编语言的中断调用功能的应用,并了解和掌握汇编语言程序设计过程、方法及实现。课程设计的...

Global site tag (gtag.js) - Google Analytics