精华内容
下载资源
问答
  • 用c实现BM算法,匹配字符串和匹配文本都是手动输入,然后输出是否在匹配文本中找到匹配字符串,结果一定要正确没bug。
  • #!coding:utf-8 ...# 测试匹配中文信息 def TestReChinese( ): reload(sys) sys.setdefaultencoding( "utf-8" ) # 这段HTML代码是从博客列表页面中摘取出来的单个博客的信息, 我们要从中摘取出

    前面我们说到了如何在Python正则表达式z中匹配中文,说到了另一种方法,这就是如何巧妙的使用Python正则表达式匹配模式的问题了

    Python匹配模式

    re.compile(strPattern[, flag]):

    这个方法是Pattern类的工厂方法,用于将字符串形式的正则表达式编译为Pattern对象。 第二个参数flag是匹配模式,取值可以使用按位或运算符'|'表示同时生效,比如re.I | re.M。另外,你也可以在regex字符串中指定模式,比如re.compile('pattern', re.I | re.M)与re.compile('(?im)pattern')是等价的。
    可选值有:

    主要非英文语系字符范围

    模式 名称 说明
    re.I re.IGNORECASE 忽略大小写(括号内是完整写法,下同)
    re.M MULTILINE 多行模式,改变'^'和'$'的行为
    re.S DOTALL 点任意匹配模式,改变'.'的行为, 使".“可以匹配任意字符
    re.L LOCALE 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定
    re.U UNICODE 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性
    re.X VERBOSE 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。以下两个正则表达式是等价的:

     

    具体参见如下代码

     

    #!coding:utf-8
    
    import re
    import sys
    import urllib2
    
    
    # 测试匹配中文信息
    def TestReChinese( ):
        reload(sys)
        sys.setdefaultencoding( "utf-8" )
    
        # 这段HTML代码是从博客列表页面中摘取出来的单个博客的信息, 我们要从中摘取出
        page  =   r"""<div class="list_item article_item">
                
        <div class="article_title">   
            <span class="ico ico_type_Original">
            </span>
                    
            <h1>
                <span class="link_title">
                    <a href="/gatieme/article/details/43235791">
                    Python正则表达式匹配中文
                    </a>
                </span>
            </h1>
        </div>
    
        <div class="article_description">
        在使用Python的过程中,由于需求原因,我们经常需要在文本或者网页元素中用Python正则表达式匹配中文,但是我们经常所熟知的正则表达式却只能匹配英文,而对于中文编码却望尘莫及,于是我大量Google,几经Baidu,花了两个多个小时测试,终于发现解决的办法。特记录如下    字符串的角度来说,中文不如英文整齐、规范,这是不可避免的现实。本文结合网上资料以及个人经验,以 python 语言为例,...        
        </div>
            
        <div class="article_manage">
                
            <span class="link_postdate">2015-01-28 19:34
            </span>
                
            <span class="link_view" title="阅读次数">
                <a href="/gatieme/article/details/43235791" title="阅读次数">阅读</a>(64)
            </span>
                
            <span class="link_comments" title="评论次数">
                <a href="/gatieme/article/details/43235791#comments" title="评论次数" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(0)
            </span>
        
            <span class="link_edit"><a href="http://write.blog.csdn.net/postedit/43235791" title="编辑">编辑</a>
            </span>
                
            <span class="link_delete"><a href="javascript:void(0);" οnclick="javascript:deleteArticle(43235791);return false;" title="删除">删除</a>
            </spa    </div>
    
        <div class="clear">
        </div>
    </div>"""
        req = urllib2.Request("http://blog.csdn.net/gatieme/article/list/1")                # 建立页面请求
        req.add_header("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)")
                
        try:
            cn = urllib2.urlopen(req)
            page = cn.read( )
            unicodePage = page.decode("utf-8")
            cn.close( )
        except urllib2.URLError, e:
            print 'URLError:', e.code
            return
        except urllib2.HTTPError, e:
            print 'HTTP Error:' + e.reason
            return   
    
        # 从博客页面中匹配出每个博客的地                                                                           址
        reHtml = r'<span class="link_title"><a href="(.*?)">\s*(.*?)\s*</a></span>.*?<span class="link_postdate">(.*?)</span>\s*<span class="link_view" title=".*?"><a href="(.*?)" title=".*?">.*?</a>(.*?)</span>\s*<span class="link_comments" title=".*?"><a href="(.*?)#comments" title=".*?" οnclick=".*?">.*?</a>(.*?)</span>'
    #####-----------------------------------------------------------  
        # [示例1]----写法1 匹配失败, 无法匹配中文
        # pattern = re.compile(reHtml)
        # myItems = re.findall(pattern, unicodePage)  
    
        # [示例1]----写法2 匹配失败, 无法匹配中文
        # myItems = re.findall(reHtml, unicodePage)   
    #####-----------------------------------------------------------
    
    #####-----------------------------------------------------------
        # [示例2]----写法1, 匹配成功, re.S使用DOTALL模式可以匹配中文
        # 写法说明  
        #   Ⅰ将字符串编译成re.S[DOTALL]模式下正则表达式
        #   Ⅱ在使用正则表达式文本或者HTML代码中匹配博客信息
        pattern = re.compile(reHtml, re.S)
        myItems = re.findall(pattern, unicodePage)
     
        # [示例2]----写法2, 匹配成功, re.S使用DOTALL模式可以匹配中文
        #   Ⅰ将字符串编译成re.S[DOTALL]模式下正则表达式
        #   Ⅱ直接用编译好的正则表达式在文本或者HTML代码中匹配博客信息
        # pattern = re.compile(reHtml, re.S)
        # myItems = pattern.findall(unicodePage)
    
        # [示例2]----写法3, 匹配成功, re.S使用DOTALL模式可以匹配中文
        #   Ⅰ
        #   Ⅱ不编译正则表达式,直接在文本或者HTML代码中匹配博客信息
        # myItems = re.findall(reHtml, unicodePage, re.S)
    
        print len(myItems)
        # print myItems
        for item in myItems:
            urlTitle = item[0].replace("\n", "")
            urlView = item[3].replace("\n", "")
            urlComments = item[5].replace("\n", "")
            # 由于匹配时使用了贪婪模式, 为了匹配出现错误,
            # 将某一篇的标题与另一篇博客的发表时间, 阅读次数或者评论条数混淆的匹配成一篇博客信息
            # 因此在匹配时,重复的匹配了博客的地址信息
            # 当且仅当,博客标题附带的地址信息与博客阅读次数以及评论条数附带的地址信息时同一篇博客的地址时,
            # 我们才认为匹配成功
            if (urlTitle == urlView) and (urlTitle == urlComments):
                print "#------------------------------------------------------"
                print "地址:", item[0].replace("\n", ""),       # 博客地址URL1(标题附带)
                print "标题:", item[1].replace("\n", ""),         # 博客标题
                print "时间:", item[2].replace("\n", ""),         # 博客发表时间
                print "阅读:", item[4].replace("\n", ""),         # 博客阅读次数信息
                print "评论:", item[6].replace("\n", "")         # 博客评论条数
                print "#-----------------------------------------------------"
                print 
                print 
    
    
    if __name__ == "__main__" :
        # 测试正则表达式
    
        reload(sys)
        sys.setdefaultencoding("utf-8")
    
        TestReChinese( )
    

    展开全文
  • 对于任一给定的单词,在该文本中找寻匹配的字符串,输出结果 Information security means protecting information and information systems from unauthorized access, use, disclosure, disruption, ...
  • c++阅读源代码方法

    千次阅读 2015-08-03 10:53:06
    1.阅读源代码对于程序员来说是提高技术实力和业务知识最好的方法,那么我们怎样阅读源代码就是我们 首先要解决的问题。 阅读源代码就像管理一家大的公司,关键在于管理者卓越的领导意识。作为阅读源代码的人也...

    转自:http://blog.163.com/fan_jiangfeng/blog/static/98698782201185822872/



    1.阅读源代码对于程序员来说是提高技术实力和业务知识最好的方法,那么我们怎样阅读源代码就是我们 首先要解决的问题。

    阅读源代码就像管理一家大的公司,关键在于管理者卓越的领导意识。作为阅读源代码的人也应该有良好的意识,在阅读源代码时才能事半功倍。养成良好的阅读习惯。

    阅读方法如下:

    <!--[if !supportLists]--> 1.<!--[endif]-->对于一个大的项目,首先要弄清项目的框架结构和各个项目模块的功能(输入什么,处理以后输出什么). 在这一点上Ant工具做的相当到位,通过编写build.xml和xml的良好的语法结构可以清楚的看到框架。Make工具也做比较出色。具体细节可参考GNU Make /Apache Ant Manual.和程序的build.xml或makefile文件。

    2. 参照源代码和对应文档及业务知识 掌握各个项目模块的主流程也就是先从每个模块的main函 数开始,按照顺序列出所用的函数,试着画流程图。注意:对于列出的函数我们现在只关心输入什么,处理后输出什么即函数的功能,不关心函数的实现,用UltraEdit32最新版阅读时十分方便。

    3.以上两步熟悉以后,在进一步熟悉各个项目模块的主流程,要弄清各个自定义函数的具体实现(标准库函数除外 原因:由厂商提供,厂商只提供函数的功能)。

    4.在每一步都要做好源代码阅读笔记,总结方法和技巧。每个项目的源代码阅读要多读几遍,书读百遍 其义之见 呵呵 定期与同仁切磋交流。

    5.提出更好的解决方案,(按照软件工程的设计步骤)评估方案的性能(界面,易用性,内存等方面).

    6.每日构建 具体参考构建工具和相关文挡。

    2**********************************************************************************
    接着,看一看大师是如何做的。一般,要初步了解人家的框架模型,(这可以通过追踪一些核心函数/类得到一些印象,或者开发文档等);进一步,找到核心数据结构,核心数据结构会直接影响代码的质量。(曾经有人说:我不要看你的程序,让我看一看你的数据结构!)事实上,当你完全读懂它的数据结构时,在来阅读源代码,就是水到渠成的事了。


    3**********************************************************************************
    1、阅读源代码的说明文档,比如README, 作者写的非常的详细,仔细读过之后,在阅读程序的时候往往能够从README文件中找到相应的说明,从而简化了源程序的阅读工作。
    2、如果源代码有文档目录,一般为doc或者docs, 最好也在阅读源程序之前仔细阅读,因为这些文档同样起了很好的说明注释作用。
    3、从makefile文件入手,分析源代码的层次结构,找出哪个是主程序,哪些是函数包。这对于快速把握程序结构有很大帮助。
    4、从main函数入手,一步一步往下阅读,遇到可以猜测出意思来的简单的函数,可以跳过。但是一定要注意程序中使用的全局变量(如果是C程序),可以把关键的数据结构说明拷贝到一个文本编辑器中以便随时查找。
    5、分析函数包(针对C程序),要注意哪些是全局函数,哪些是内部使用的函数,注意extern关键字。对于变量,也需要同样注意。先分析清楚内部函数,再来分析外部函数,因为内部函数肯定是在外部函数中被调用的。
    6、需要说明的是数据结构的重要性:对于一个C程序来说,所有的函数都是在操作同一些数据,而由于没有较好的封装性,这些数据可能出现在程序的任何地方,被任何函数修改,所以一定要注意这些数据的定义和意义,也要注意是哪些函数在对它们进行操作,做了哪些改变。
    7、在阅读程序的同时,最好能够把程序存入到cvs之类的版本控制器中去,在需要的时候可以对源代码做一些修改试验,因为动手修改是比仅仅是阅读要好得多的读程序的方法。在你修改运行程序的时候,可以从cvs中把原来的代码调出来与你改动的部分进行比较(diff命令), 可以看出一些源代码的优缺点并且能够实际的练习自己的编程技术。
    8、阅读程序的同时,要注意一些小工具的使用,能够提高速度,比如vi中的查找功能,模式匹配查找,做标记,还有grep,find这两个最强大最常用的文本搜索工具的使用。


    展开全文
  • 常用的限定符代码/语法说明: *重复零次或更多次 +重复一次或更多次 ?重复零次或一次 {n}重复n次 {n,}重复n次或更多次 {n,m}重复n到m次 关于命名组: 命名组: (?P<name>.....),详见: ...
    #py2.7
    #coding:utf-8
    
    import re
    import os
    import chardet
    
    def filter_tag(htmlstr):
        re_cdata = re.compile('<!DOCTYPE HTML PUBLIC[^>]*>', re.I)
        re_script = re.compile('<\s*script[^>]*>[^<]*<\s*/\s*script\s*>', re.I) #过滤脚本
        re_style = re.compile('<\s*style[^>]*>[^<]*<\s*/\s*style\s*>', re.I) #过滤style
        re_br = re.compile('<br\s*?/?>')
        re_h = re.compile('</?\w+[^>]*>')
        re_comment = re.compile('<!--[\s\S]*-->')
        s = re_cdata.sub('', htmlstr)
        s = re_script.sub('', s)
        s=re_style.sub('',s)
        s=re_br.sub('\n',s)
        s=re_h.sub(' ',s)
        s=re_comment.sub('',s)
        blank_line=re.compile('\n+')
        s=blank_line.sub('\n',s)
        s=re.sub('\s+',' ',s)
        s=replaceCharEntity(s)
        return s
    
    def replaceCharEntity(htmlstr):
        CHAR_ENTITIES={'nbsp':'','160':'',
                        'lt':'<','60':'<',
                        'gt':'>','62':'>',
                        'amp':'&','38':'&',
                        'quot':'"','34':'"'}
        re_charEntity=re.compile(r'&#?(?P<name>\w+);') #命名组,把 匹配字段中\w+的部分命名为name,可以用group函数获取
        sz=re_charEntity.search(htmlstr)
        while sz:
            #entity=sz.group()
            key=sz.group('name') #命名组的获取
            try:
                htmlstr=re_charEntity.sub(CHAR_ENTITIES[key],htmlstr,1) #1表示替换第一个匹配
                sz=re_charEntity.search(htmlstr)
            except KeyError:
                htmlstr=re_charEntity.sub('',htmlstr,1)
                sz=re_charEntity.search(htmlstr)
        return htmlstr
    
    if __name__=='__main__':
        cpath=os.getcwd()
        
        for root,dirs,files in os.walk(cpath):
            for file in files:
                if file.endswith('htm') or file.endswith('html'):
                    f=open(root+os.path.sep+file)
                    stream=f.read()
                    htmlstr =stream.decode(chardet.detect(stream)['encoding'])
                    rs=filter_tag(htmlstr)
                    f.close()
                    txtname=re.sub(r'.htm*$','.txt',file)
                    print txtname
                    f=open(root+os.path.sep+txtname,'w')
                    f.write(rs.encode('utf-8'))
                    f.close()
    


    总结:

    转义符:

    . 匹配除换行符以外的任意字符

    \w 匹配字母或数字或下划线或汉字

    \s 匹配任意的空白符

    \d 匹配数字

    \b 匹配单词的开始或结束

    ^ 匹配字符串的开始

    $ 匹配字符串的结束

    \W 匹配任意不是字母,数字,下划线,汉字的字符

    \S 匹配任意不是空白符的字符

    \D 匹配任意非数字的字符

    \B 匹配不是单词开头或结束的位置

    [^x] 匹配除了x以外的任意字符

    [^aeiou] 匹配除了aeiou这几个字母以外的任意字符


    常用的限定符代码/语法说明:

    *重复零次或更多次

    +重复一次或更多次

    ?重复零次或一次

    {n}重复n次

    {n,}重复n次或更多次

    {n,m}重复n到m次


    关于命名组:

    命名组:(?P<name>.....),详见:http://scm002.iteye.com/blog/1491521

    这篇文章里面还提到了界定( 问号开头,前向则有个'<'号,非则有个'!' 号 ):

    前向界定 (?<=…)

    后向界定 (?=…)  

    前向非界定 (?<!....)

    后向非界定 (?!.....)





    展开全文
  • 在visual studio 2010版及以上版本上编译,可生成.exe文件,将这个.exe文件和需要转换的源代码文件放到同一个目录中,打开.exe文件按照提示进行操作即可! 转载于:...

            基本的思想是,先检查当前目录下有多少种类型的源文件,比如.cpp,.c,.cc,.java等都属于不同类型的源文件,然后采用_finddata_t结构体表征不同类型的文件,通过_findfirst和_findnext函数一一进行匹配,直到全部找到为止。

            再分别打开这些文件,并打开同名的文件加上.txt后缀,将源文件读入到文本文件当中,至此完成。

    main.cpp

    #include "stdafx.h"
    #include "FileTran.h"
    #include "ListFile.h"
    #include<iostream>
    #include<windows.h>
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	try{
    		FileTran fileTran;
    		ListFile listFile;
    		listFile.listFiles();
    		printf("listfile\n");
    		unsigned int num=listFile.getNum();
    		printf("num=%d\n",num);
    		unsigned int i=0;
    		while(i<num){
    			cout<<listFile.getFile(i)<<endl;
    			if(fileTran.openFile(listFile.getFile(i))){
    				fileTran.handleFile();
    				i++;
    				if(i==8)break;
    			}
    		}
    	} catch(...){
    		printf("something is wrong!\n");
    	}
    	std::cout<<"--------done"<<std::endl;
    	Sleep(2000);
    	return 0;
    }
    
    

    FileTran.cpp 

    #include "StdAfx.h"
    #include "FileTran.h"
    #include <cstdio>
    #include <string>
    #include<iostream>
    using std::ios_base;
    using std::string;
    using std::getline;
    
    FileTran::FileTran(void)
    {
    }
    
    
    FileTran::~FileTran(void)
    {
    	close();
    }
    
    bool FileTran::openFile(const char* filename)
    {
    	finFile.open(filename,ios_base::in|ios_base::binary);
    	if(!finFile.is_open()){
    		printf("can not open the file,please check it out!\n");
    		throw "open error";
    	}
    	else{
    		this->filename=filename;
    		printf("File opened\n");
    		return true;
    	}
    }
    
    void FileTran::close()
    {
    
    }
    
    void FileTran::handleFile()
    {
    	string tmpname=string(filename)+string(".txt");
    	if(finFile.is_open()){
    		foutFile.open(tmpname.c_str(),ios_base::out|ios_base::binary);
    		if(!foutFile.is_open()){
    			throw "something is wrong";
    		}
    	}
    
    	string str;
    
    	while(!finFile.eof()){
    		std::getline(finFile,str);
    		foutFile<<str<<std::endl;
    	}
    	finFile.close();
    	foutFile.close();
    }

     FileTran.h

    #ifndef _FILETRAN_
    #define _FILETRAN_
    #include<fstream>
    using std::ifstream;
    using std::ofstream;
    class FileTran
    {
    public:
    	FileTran(void);
    	~FileTran(void);
    public:
    	bool openFile(const char*);
    	void handleFile();
    private:
    	void close();
    private:
    	const char* filename;
    	ifstream finFile;
    	ofstream foutFile;
    };
    
    #endif //file tran
    
    

    ListFile.cpp 

    #include "StdAfx.h"
    #include "ListFile.h"
    #include<iostream>
    #include<fstream>
    #include<io.h>
    #include<windows.h>
    #include<tchar.h>
    
    ListFile::ListFile(void)
    {
    }
    
    
    ListFile::~ListFile(void)
    {
    }
    
    unsigned int ListFile::listFiles()
    {
    	unsigned int cnt=0;
    	char buf[SIZEFILE*2];
    	printf("Please enter all sorts of files you wanna transfer:");
    	while(EOF==scanf("%d",&kindsFiles)){
    		printf("enter is wrong!\n");
    	}
    	printf("Please enter the regulations of files,for example: \"*.c\" means all .c files would be listed!\n");
    	while(EOF!=scanf("%s",regs[cnt++])){
    		if(cnt==kindsFiles) break;
    	}
    	cnt=0;	
    	while(cnt!=kindsFiles){
    		struct _finddata_t files;
    		long handle=_findfirst(regs[cnt++],&files);
    
    		if(-1==handle){
    			printf("can not match the files!\n");
    			while(true);
    			exit(-1);
    		}
    		string tmp=string(files.name);
    		filesList.push_back(tmp);
    		while(!_findnext(handle,&files)){
    			tmp=string(files.name);
    			filesList.push_back(tmp);
    		}
    	}
    	nums=filesList.size();
    return nums;
    }
    
    
    void ListFile::disFiles()
    {
    	list<string>::iterator listPtr=filesList.begin();
    	for(int i=0;i<nums;i++,listPtr++){
    		strcpy(allFiles[i],listPtr->c_str());
    	}
    }
    
    char* ListFile::getFile(unsigned int n)
    {
    	disFiles();
    	return allFiles[n];
    }
    
    unsigned int ListFile::getNum()
    {
    	return nums;
    }
    
    

    ListFile.h 

    #ifndef _LISTFILE_
    #define _LISTFILE_
    #include<cstdio>
    #include<string>
    #include<list>
    #define SIZEFILE 80
    #define NUMFILE  80
    using std::string;
    using std::list;
    
    class ListFile
    {
    public:
    	ListFile(void);
    	~ListFile(void);
    private:
    	unsigned int kindsFiles;
    	char regs[NUMFILE][SIZEFILE];
    	list<string> filesList;
    	char allFiles[NUMFILE][SIZEFILE];
    	unsigned int nums;
    public:
    	unsigned int listFiles();
    	void disFiles();
    	char* getFile(unsigned int);
    	unsigned int getNum();
    };
    
    #endif //list file
    
    

    stdafx.cpp 

    #include "stdafx.h"

    stdafx.h

    
    #pragma once
    
    #include "targetver.h"
    
    #include <stdio.h>
    #include <tchar.h>
    
    

    targetver.h

    #pragma once
    
    // 包括 SDKDDKVer.h 将定义可用的最高版本的 Windows 平台。
    
    // 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
    // WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
    
    #include <SDKDDKVer.h>
    

     

    在visual studio 2010版及以上版本上编译,可生成.exe文件,将这个.exe文件和需要转换的源代码文件放到同一个目录中,打开.exe文件按照提示进行操作即可!

    转载于:https://my.oschina.net/u/2309100/blog/754290

    展开全文
  • 网页源代码xpath解析

    千次阅读 2019-10-18 10:22:25
    网页源代码解析 xpath 解析 //元素标签名 例如: //div,查找网页内的所有div //元素标签名[@属性名=‘具体内容’] 例如: //div[@class=‘div1’],查找class为div1的div //元素标签名[第几个] 例如: //div...
  • 我是怎么阅读kubernetes源代码的?

    千次阅读 2017-09-26 14:12:27
    怎么阅读k8s源代码源代码中包含了所有信息。写开源软件,从文档和其他地方拿到的是二手的信息,代码就是最直接的一手信息。代码就是黑客帝国中neo看到的世界本源。文本并不是代码本身。文本只是在人类可读的...
  • 阅读源代码

    千次阅读 2006-08-17 02:54:00
    1********************************************************************************** 阅读源代码对于程序员来说是提高技术实力和业务知识最好的方法,那么我们怎样阅读源代码就是我们 首先要解决的问题。...
  • Nutch1.7学习笔记6:ParseSegment源代码分析 作者:雨水,时间:2013-11-17 博客地址:http://blog.csdn.net/gobitan ParseSegment分析 ParseSegment类的结构相对要简单一些,与Injector等在内部类中实现map和...
  • 一、为什么要阅读源代码?很多作家成名之前都阅读过大量的优秀文学作品,经过长期的阅读和写作积累,慢慢的才有可能写出一些好的、甚至是优秀的文学作品。 而程序员与此类似,很多程序员也需要阅读大量的优秀程序或...
  • 如何阅读源代码

    千次阅读 2014-04-28 18:50:55
    2.要有选择地阅读代码, 同时, 还要有自己的目标. 您是想学习新的模式|编码风格|还是满足某些需求的方法. 3.要注意并重视代码中特殊的非功能性需求, 这些需求也许会导致特殊的实现风格. 4.在现有的代码上工作时...
  • FFmpeg源代码简单分析:configure

    万次阅读 热门讨论 2015-03-24 10:22:53
    本文记录FFmpeg的Configure脚本的源代码。Configure一方面用于检测FFmpeg的编译环境,另一方面根据用户配置的选项生成config.mak,config.h文件(可能还有config.asm),提供给Makefile使用。由于FFmpeg的configure...
  • 匹配文本中的网址java正则表达式 源代码下载地址:http://www.zuidaima.com/share/1575653789993984.htm
  • 如何看懂源代码--(分析源代码方法)

    万次阅读 2016-04-27 14:03:35
    积累一些读软件源码的好方法: ... 想要更多软件开发资料或帮助, 请...我们在写程序时,有不少时间都是在看别人的代码。  例如看小组的代码,看小组整合的守则,若一开始没规划怎么看,  就会“噜看噜苦(台语) ”
  • BMH算法源代码如下(C++版): #include #include using namespace std; ///计算模板一般情况下的滑动窗口 void getShiftFrame(int* table, int len, string needle) { int i = 0; //存储字符距离最右端的...
  • 11款最好的JavaScript源代码编辑器

    千次阅读 2014-06-24 17:33:32
    源代码编辑器是一个允许你编辑任何编程语言的源代码文本编辑器。 它可以是一个独立的应用程序,也可以是内置的一个集成开发环境(IDE)。 有一些源代码编辑器能够在程序员编写程序的时候做语法检查,并在第一时间对...
  • Linux源代码下载

    千次阅读 2012-02-25 10:00:26
    1. 课程设计题目:下载某个版本的linux源代码,生成一个定制的linux操作系统,完成后该系统可以用来作为启动系统使用。 2.如何做的问题? 内核版本 要编译一个最新的内核,您需要首先下载它的源代码 在您下载...
  • 如何阅读源代码(转)

    千次阅读 2010-03-05 15:32:00
    分析一个源代码,一个有效的方法是: 1、阅读源代码的说明文档,比如本例中的README, 作者写的非常的详细,仔细读过之后,在阅读程序的时候往往能够从README文件中找到相应的说明,从而简化了源程序的阅读工作。...
  • 1.2 准备源代码阅读环境

    千次阅读 2013-07-18 10:14:54
    1.2 准备源代码阅读环境 在研究一个开源项目之前,都需要安装与配置基本的开发环境和源代码的阅读环境。这一系列内容包括:安装与配置JDK、安装开发调试IDE、安装与配置相关辅助工具等。 1.2.1 安装与配置JDK ...
  • 如何提高阅读源代码能力

    千次阅读 2010-07-28 09:56:00
    在这里准备用一个例子来写一下如何阅读源代码,分享一些经验,算是抛砖引玉吧! 正文:   由于工作的关系,我常常需要读一些源代码,并在上面做一些修改并且拿来使用,或者是借鉴其中的某些部分。...
  • linux源代码阅读工具(转载)

    千次阅读 2015-11-23 14:00:28
    Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是Taglist和OmniCppComplete工作的基础。 ...
  • 我们在正常的代码中引用空格可以直接键入空格按键,空格并不存在转义字符,经常使用git的同学应该体会过,当我们提交patch时,如果行尾多余的空格符是会显示红色的,这对于强迫症加完美主义者的程序员来说是无法容忍...
  • 利用Lucene搜索Java源代码

    千次阅读 2006-04-19 11:39:00
    虽然这些搜索引擎对文本文件的搜索可以做的很好,但对开发者搜索源代码做了比较严格的限制。搜索引擎认为源代码就是纯文本文件,因此,在这一点上,与成熟的可以处理大量源文件的工具――grep相比没有什么不同。
  • jquery.ajax源代码初探

    千次阅读 2010-05-20 17:45:00
    前言:我是根据ajax:function()那个源代码的代码顺序写的,摘要了一部分经典写法和思路的笔记与分析,如果有不足之处欢迎指教,源代码我贴在分析下面,最好还是看jquery的源文件.  一句一句开始分析作者代码,句句...
  • KMP算法--c语言源代码

    万次阅读 多人点赞 2012-11-22 16:55:08
    假如 文本内容为abdaaeabdaaeaeaeffd,匹配字符串为aeabdaaeaea 1.根据匹配字符串p求出next 首先next[0]赋值为-1,next[1]赋值为0,循环遍历p中每个字符,如果2个字符相同则next[i+1]=next[i]+1=j+1,否则比较next...
  • 【Python3】常见文本相似度计算方式及代码

    万次阅读 多人点赞 2019-04-19 23:02:54
    常见文本相似度计算方式及代码 文本相似度的计算广泛的运用在信息检索,搜索引擎, 文档复制等处: 因此在各种不同的情况与任务中,有不同的文本相似度计算。 近期在处理搜索引擎的相关项目 下面介绍一下我们主要使用...
  • 但是对于如Java源代码的比较,有一些额外需要考虑的因素:多余的空格不能算差别、Java源代码中的注释也不能算差别。下面举两个例子来说明这种需求: test //command /*1 *1 1 以及: test //command2 /*2 *2 1 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 130,843
精华内容 52,337
关键字:

文本匹配源代码