正则表达式-pcre库函数使用

PCRE是一个NFA正则引擎,不然不能提供完全与Perl一致的正则语法功能。但它同时也实现了DFA,只是满足数学意义上的正则。

 

PCRE提供了19个接口函数,为了简单介绍,使用PCRE内带的测试程序(pcretest.c)示例用法。

1. pcre_compile

 原型:

#include

pcre *pcre_compile(const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr);

功能:将一个正则表达式编译成一个内部表示,在匹配多个字符串时,可以加速匹配。其同pcre_compile2功能一样只是缺少一个参数errorcodeptr

参数:

pattern    正则表达式

options     为0,或者其他参数选项

errptr       出错消息

erroffset  出错位置

tableptr   指向一个字符数组的指针,可以设置为空NULL

示例:

L1720     re = pcre_compile((char *)p, options, &error, &erroroffset, tables);

 

2. pcre_compile2

 原型:

#include

pcre *pcre_compile2(const char *pattern, int options, int *errorcodeptr, const char **errptr, int *erroffset, const unsigned char *tableptr);

功能:将一个正则表达式编译成一个内部表示,在匹配多个字符串时,可以加速匹配。其同pcre_compile功能一样只是多一个参数errorcodeptr

参数:

pattern    正则表达式

options     为0,或者其他参数选项

errorcodeptr    存放出错码

 errptr       出错消息

 erroffset  出错位置

tableptr   指向一个字符数组的指针,可以设置为空NULL

 

3. pcre_config

 原型:

#include

int pcre_config(int what, void *where);

功能:查询当前PCRE版本中使用的选项信息。

参数:

what         选项名

where       存储结果的位置

示例:

Line1312 (void)pcre_config(PCRE_CONFIG_POSIX_MALLOC_THRESHOLD, &rc);

 

4. pcre_copy_named_substring

 原型:

#include

int pcre_copy_named_substring(const pcre *code, const char *subject, int *ovector, int stringcount, const char *stringname, char *buffer, int buffersize);

功能:根据名字获取捕获的字串。

参数:

code                            成功匹配的模式

subject               匹配的串

ovector              pcre_exec() 使用的偏移向量

stringcount   pcre_exec()的返回值

stringname       捕获字串的名字

buffer                 用来存储的缓冲区

buffersize                   缓冲区大小

示例:

Line2730 int rc = pcre_copy_named_substring(re, (char *)bptr, use_offsets,

            count, (char *)copynamesptr, copybuffer, sizeof(copybuffer));

 

5. pcre_copy_substring

  原型:

#include

int pcre_copy_substring(const char *subject, int *ovector, int stringcount, int stringnumber, char *buffer, int buffersize);

功能:根据编号获取捕获的字串。

参数:

code                            成功匹配的模式

subject               匹配的串

ovector              pcre_exec() 使用的偏移向量

stringcount   pcre_exec()的返回值

stringnumber   捕获字串编号

buffer                 用来存储的缓冲区

buffersize                   缓冲区大小

示例:

Line2730 int rc = pcre_copy_substring((char *)bptr, use_offsets, count,

              i, copybuffer, sizeof(copybuffer));

 

6. pcre_dfa_exec

 原型:

#include

int pcre_dfa_exec(const pcre *code, const pcre_extra *extra, const char *subject, int length, int startoffset, int options, int *ovector, int ovecsize, int *workspace, int wscount);

功能:使用编译好的模式进行匹配,采用的是一种非传统的方法DFA,只是对匹配串扫描一次(与Perl不兼容)。

参数:

code                   编译好的模式

extra         指向一个pcre_extra结构体,可以为NULL

subject    需要匹配的字符串

length       匹配的字符串长度(Byte)

startoffset        匹配的开始位置

options     选项位

ovector    指向一个结果的整型数组

ovecsize   数组大小

workspace        一个工作区数组

wscount   数组大小

示例:

Line2730 count = pcre_dfa_exec(re, extra, (char *)bptr, len, start_offset,

              options | g_notempty, use_offsets, use_size_offsets, workspace,

              sizeof(workspace)/sizeof(int));

 

7. pcre_copy_substring

原型:

#include

int pcre_exec(const pcre *code, const pcre_extra *extra, const char *subject, int length, int startoffset, int options, int *ovector, int ovecsize);

功能:使用编译好的模式进行匹配,采用与Perl相似的算法,返回匹配串的偏移位置。。

参数:

code                   编译好的模式

extra         指向一个pcre_extra结构体,可以为NULL

subject    需要匹配的字符串

length       匹配的字符串长度(Byte)

startoffset        匹配的开始位置

options     选项位

ovector    指向一个结果的整型数组

ovecsize   数组大小

 

8. pcre_free_substring

原型:

#include

void pcre_free_substring(const char *stringptr);

功能:释放pcre_get_substring()和pcre_get_named_substring()申请的内存空间。

参数:

stringptr            指向字符串的指针

示例:

Line2730        const char *substring;

int rc = pcre_get_substring((char *)bptr, use_offsets, count,

              i, &substring);

……

pcre_free_substring(substring);

 

9. pcre_free_substring_list

       原型:

#include

void pcre_free_substring_list(const char **stringptr);

功能:释放由pcre_get_substring_list申请的内存空间。

参数:

stringptr            指向字符串数组的指针

示例:

Line2773        const char **stringlist;

int rc = pcre_get_substring_list((char *)bptr, use_offsets, count,

……

pcre_free_substring_list(stringlist);

 

10. pcre_fullinfo

原型:

#include

int pcre_fullinfo(const pcre *code, const pcre_extra *extra, int what, void *where);

功能:返回编译出来的模式的信息。

参数:

code          编译好的模式

extra         pcre_study()的返回值,或者NULL

what         什么信息

where       存储位置

示例:

Line997          if ((rc = pcre_fullinfo(re, study, option, ptr)) < 0)

fprintf(outfile, "Error %d from pcre_fullinfo(%d)/n", rc, option);

}

 

11. pcre_get_named_substring

原型:

#include

int pcre_get_named_substring(const pcre *code, const char *subject, int *ovector, int stringcount, const char *stringname, const char **stringptr);

功能:根据编号获取捕获的字串。

参数:

code                            成功匹配的模式

subject               匹配的串

ovector              pcre_exec() 使用的偏移向量

stringcount   pcre_exec()的返回值

stringname       捕获字串的名字

stringptr     存放结果的字符串指针

示例:

Line2759        const char *substring;

int rc = pcre_get_named_substring(re, (char *)bptr, use_offsets,

            count, (char *)getnamesptr, &substring);

 

12. pcre_get_stringnumber

原型:

#include

int pcre_get_stringnumber(const pcre *code, const char *name);

功能:根据命名捕获的名字获取对应的编号。

参数:

code                            成功匹配的模式

name                 捕获名字

 

13. pcre_get_substring

原型:

#include

int pcre_get_substring(const char *subject, int *ovector, int stringcount, int stringnumber, const char **stringptr);

功能:获取匹配的子串。

参数:

subject       成功匹配的串

ovector       pcre_exec() 使用的偏移向量

stringcount    pcre_exec()的返回值

stringnumber  获取的字符串编号

stringptr      字符串指针

 

14. pcre_get_substring_list

原型:

#include

int pcre_get_substring_list(const char *subject, int *ovector, int stringcount, const char ***listptr);

功能:获取匹配的所有子串。

参数:

subject       成功匹配的串

ovector       pcre_exec() 使用的偏移向量

stringcount    pcre_exec()的返回值

listptr             字符串列表的指针

 

15. pcre_info

原型:

#include

int pcre_info(const pcre *code, int *optptr, int *firstcharptr);

已过时,使用pcre_fullinfo替代。

 

16. pcre_maketables

原型:

#include

const unsigned char *pcre_maketables(void);

功能:生成一个字符表,表中每一个元素的值不大于256,可以用它传给pcre_compile()替换掉内建的字符表。

参数:

示例:

Line2759 tables = pcre_maketables();

 

17. pcre_refcount

原型:

#include

int pcre_refcount(pcre *code, int adjust);

功能:编译模式的引用计数。

参数:

code       已编译的模式

adjust      调整的引用计数值

 

18. pcre_study

原型:

#include

pcre_extra *pcre_study(const pcre *code, int options, const char **errptr);

功能:对编译的模式进行学习,提取可以加速匹配过程的信息。

参数:

code      已编译的模式

options    选项

errptr     出错消息

示例:

Line1797 extra = pcre_study(re, study_options, &error);

 

19. pcre_version

原型:

#include

char *pcre_version(void);

功能:返回PCRE的版本信息。

参数:

示例:

Line1384 if (!quiet) fprintf(outfile, "PCRE version %s/n/n", pcre_version());

 

程序实例:

#define PCRE_STATIC // 静态库编译选项
#include
#include
#include
#define OVECCOUNT 30 /* should be a multiple of 3 */
#define EBUFLEN 128
#define BUFLEN 1024


int main()
{
    pcre  *re;
    const char *error;
    int  erroffset;
    int  ovector[OVECCOUNT];
    int  rc, i;
    char  src [] = "111 Hello World 222";   // 要被用来匹配的字符串
    char  pattern [] = "(.*)</(tit)le>";              // 将要被编译的字符串形式的正则表达式<br>     printf("String : %s/n", src);<br>     printf("Pattern: /"%s/"/n", pattern);<br>     re = pcre_compile(pattern,       // pattern, 输入参数,将要被编译的字符串形式的正则表达式<br>                       0,            // options, 输入参数,用来指定编译时的一些选项<br>                       &error,       // errptr, 输出参数,用来输出错误信息<br>                       &erroffset,   // erroffset, 输出参数,pattern中出错位置的偏移量<br>                       NULL);        // tableptr, 输入参数,用来指定字符表,一般情况用NULL<br>     // 返回值:被编译好的正则表达式的pcre内部表示结构<br>     if (re == NULL) {                 //如果编译失败,返回错误信息<br>         printf("PCRE compilation failed at offset %d: %s/n", erroffset, error);<br>         return 1;<br>     }<br>     rc = pcre_exec(re,            // code, 输入参数,用pcre_compile编译好的正则表达结构的指针<br>                    NULL,          // extra, 输入参数,用来向pcre_exec传一些额外的数据信息的结构的指针<br>                    src,           // subject, 输入参数,要被用来匹配的字符串<br>                    strlen(src),  // length, 输入参数, 要被用来匹配的字符串的指针<br>                    0,             // startoffset, 输入参数,用来指定subject从什么位置开始被匹配的偏移量<br>                    0,             // options, 输入参数, 用来指定匹配过程中的一些选项<br>                    ovector,       // ovector, 输出参数,用来返回匹配位置偏移量的数组<br>                    OVECCOUNT);    // ovecsize, 输入参数, 用来返回匹配位置偏移量的数组的最大大小<br>     // 返回值:匹配成功返回非负数,没有匹配返回负数<br>     if (rc < 0) {                     //如果没有匹配,返回错误信息<br>         if (rc == PCRE_ERROR_NOMATCH) printf("Sorry, no match .../n");<br>         else printf("Matching error %d/n", rc);<br>         pcre_free(re);<br>         return 1;<br>     }<br>     printf("/nOK, has matched .../n/n");   //没有出错,已经匹配<br>     for (i = 0; i < rc; i++) {             //分别取出捕获分组 $0整个正则公式 $1第一个()<br>         char *substring_start = src + ovector[2*i];<br>         int substring_length = ovector[2*i+1] - ovector[2*i];<br>         printf("$%2d: %.*s/n", i, substring_length, substring_start);<br>     }<br>     pcre_free(re);                     // 编译正则表达式re 释放内存<br>     return 0;<br> }<br></em></p> <em></em> <p style="color:rgb(51,51,51);"><em></em></p> <p style="color:rgb(51,51,51);">程序来自网上,看到有人不理解最后一个for循环的含义,ovector返回的是匹配字符串的偏移,包括起始偏移和结束偏移,所以就有循环内部的2*i处理。</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1291614632561156096"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(正则)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1895987353101594624.htm" title="shell(三剑客)" target="_blank">shell(三剑客)</a> <span class="text-muted">passion_flower_</span> <a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>正则表达式基本正则表达式元字符^行首定位符$行尾定位符.匹配任意单个字符(单个)*匹配前导符0到多次*和左侧的字符配合左侧字符可以出现0次到多次例如:grep"abc*"/tmp/123结果显示的是ababcabcd…….*任意多字符#会出现所有的内容[]匹配制定范围内的一个字符[-]匹配制定范围内的字符,连续的范围比如:grep"[0-9]"文件[^]匹配不在指定组内的字符取反比如:[^A]bc</div> </li> <li><a href="/article/1895813877493460992.htm" title="01基础 4、Shell 脚本" target="_blank">01基础 4、Shell 脚本</a> <span class="text-muted">睡神之首</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80/1.htm">基础</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>shell学习目标1.Shell基本概述2.Shell的变量定义3.Shell数值运算4.Shell的流程控制if语句5.Shell的循环语句forwhile循环6.Shell的数组函数7.Shell内置命令8.Shell正则表达式AwkGrepSedShellshell概述1、shell是命令解释器,shell存在Linux系统的最外层,shell连接系统,负责和用户对话,用户输入用户名和密码登</div> </li> <li><a href="/article/1895812617998495744.htm" title="Python之re模块" target="_blank">Python之re模块</a> <span class="text-muted">懒大王爱吃狼</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/pandas/1.htm">pandas</a><a class="tag" taget="_blank" href="/search/python%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/1.htm">python环境配置</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Python的re模块提供了对正则表达式的支持,允许你进行复杂的字符串搜索、替换和解析操作。正则表达式(RegularExpressions)是一种强大的文本处理工具,使用一种特定的语法模式来描述在搜索文本时要匹配的一个或多个字符串。以下是一些re模块中常用的函数和方法:编译正则表达式importrepattern=re.compile(r'\d+')#匹配一个或多个数字搜索字符串re.searc</div> </li> <li><a href="/article/1895745682594131968.htm" title="A Bayesian Angular Superresolution Method With Lognormal Constraint for Sea-Surface Target 论文阅读" target="_blank">A Bayesian Angular Superresolution Method With Lognormal Constraint for Sea-Surface Target 论文阅读</a> <span class="text-muted">青铜锁00</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BA%E6%96%87%E9%98%85%E8%AF%BB/1.htm">论文阅读</a><a class="tag" taget="_blank" href="/search/Radar/1.htm">Radar</a><a class="tag" taget="_blank" href="/search/%E8%AE%BA%E6%96%87%E9%98%85%E8%AF%BB/1.htm">论文阅读</a> <div>目录1.研究背景与问题2.方法创新3.关键优势4.实验验证5.与传统方法对比6.结论与意义1.研究背景与问题核心挑战:实孔径雷达受限于天线孔径尺寸,导致角分辨率不足,影响海面目标(如船舶)的精细化探测。传统方法局限性:谱估计方法(如MUSIC、IAA):依赖多快拍数据,机械扫描雷达难以满足。正则化方法(如TSVD、l1/l2约束):假设噪声服从高斯分布,未考虑海杂波的非高斯特性(如Rayleigh</div> </li> <li><a href="/article/1895699796296003584.htm" title="(脑肿瘤分割笔记:五十二)RFNet: Region-aware Fusion Network for Incomplete Multi-modalBrain Tumor Segmentation" target="_blank">(脑肿瘤分割笔记:五十二)RFNet: Region-aware Fusion Network for Incomplete Multi-modalBrain Tumor Segmentation</a> <span class="text-muted">不想敲代码的小杨</span> <a class="tag" taget="_blank" href="/search/%E8%84%91%E8%82%BF%E7%98%A4%E5%88%86%E5%89%B2%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0/1.htm">脑肿瘤分割论文笔记</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>目录摘要:Introduction方法3.1任务定义3.2模型结构3.3RFM模块概率图学习区域感知多模态融合3.4分割正则化器3.5整体损失函数总结摘要:在现有的脑肿瘤分割方法中,常常会出现缺少某些模态图像的问题,从而导致分割网络的性能下降--遇到的问题在本文中提出了一个区域感知融合网络(RFNet),它能够自适应和有效利用多模态的数据进行组合进行肿瘤分割,考虑到不同模态对不同的脑肿瘤区域的敏感</div> </li> <li><a href="/article/1895640648090972160.htm" title="php序列化与反序列化" target="_blank">php序列化与反序列化</a> <span class="text-muted">lally.</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章目录基础知识魔术方法:在序列化和反序列化过程中自动调用的方法什么是`__destruct()`方法?何时触发`__destruct()`方法?用途:语法示例:反序列化漏洞利用前提条件一些绕过策略绕过__wakeup函数绕过正则匹配绕过相等逻辑判断利用大S的ascll码绕过反序列化字符逃逸高级反序列化phar反序列化什么是PHAR文件?特点session反序列化基础知识序列化:将对象转化为一个可</div> </li> <li><a href="/article/1895545944414416896.htm" title="判断一个文件中以三个#号开头有多少行的shell脚本怎么写" target="_blank">判断一个文件中以三个#号开头有多少行的shell脚本怎么写</a> <span class="text-muted">taoyong001</span> <a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>在Linux中,你可以使用grep命令结合正则表达式来统计一个文件中以三个#号开头的行数。以下是一个简单的命令:grep-c'^###'filename这里的grep是搜索工具,-c选项表示统计匹配的行数,'###'是正则表达式,表示行的开头()紧跟着三个#号(###),filename是你要搜索的文件名。例如,如果你的文件名是example.txt,你可以运行:grep-c'^###'examp</div> </li> <li><a href="/article/1895506999060262912.htm" title="PostgreSQL Like查询与正则表达式" target="_blank">PostgreSQL Like查询与正则表达式</a> <span class="text-muted">西召</span> <a class="tag" taget="_blank" href="/search/PostgreSQL/1.htm">PostgreSQL</a><a class="tag" taget="_blank" href="/search/PostgreSQL/1.htm">PostgreSQL</a><a class="tag" taget="_blank" href="/search/like/1.htm">like</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E7%B3%8A%E6%9F%A5%E8%AF%A2/1.htm">模糊查询</a> <div>安装PostgreSQL之后,PostgreSQL会创建一个名为“postgres”的用户,创建一个名为“postgres”的数据库。我们就可以使用这个默认的库做实验。首先建表并插入数据:CREATETABLEpublic.user(IDSERIALPRIMARYKEYNOTNULL,UserIDvarchar(100)NOTNULL,UserNamevarchar(100)NOTNULL,Pho</div> </li> <li><a href="/article/1895493005620604928.htm" title="Python爬虫(2)正则表达式" target="_blank">Python爬虫(2)正则表达式</a> <span class="text-muted">DO_Lee</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a> <div>re包1.函数1)re.match(pattern,string,flags=0)如果string开头的零个或多个字符与正则表达式pattern匹配,则返回相应的Match。如果字符串与模式不匹配则返回None;请注意这与零长度匹配是不同的。表达式的行为可通过指定flags值来修改。importrestr_1='abcd'str_2='abcdabcd'str_3='dcab'res_1=re.m</div> </li> <li><a href="/article/1895460613157613568.htm" title="通过正则表达式过滤html标签" target="_blank">通过正则表达式过滤html标签</a> <span class="text-muted">蒜蒜小铺苗</span> <a class="tag" taget="_blank" href="/search/linq/1.htm">linq</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/webview/1.htm">webview</a> <div>前提:如果数据中带有html标签,但是需要过滤掉html标签,只展示里面的内容时,可以通过该正则进行过滤。如:letcontent={name:'zs',summary:"居中加粗xxxx-111",title:'cess'}过滤:去掉所有的html标签和 之类的特殊符合console.log(content.summary.replace(/]+>|&[^>]+;/g,'').trim</div> </li> <li><a href="/article/1895393529870479360.htm" title="el-input输入框输入金额时限制输入位数" target="_blank">el-input输入框输入金额时限制输入位数</a> <span class="text-muted">萬千</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>使用正则进行判断匹配,将校验过的值赋值给v-model绑定的属相我这的需求是不算小数点共9位数,其中小数点前7位,小数点后2位页面模板:方法:formatNum(val){lettemp=val.toString()//清除除了数字、小数点和负号以外的所有字符temp=temp.replace(/[^\d.-]/g,'')//截取小数点前最多7位,小数点后最多2位constparts=temp.s</div> </li> <li><a href="/article/1895392644276744192.htm" title="正则表达式常用" target="_blank">正则表达式常用</a> <span class="text-muted">不平衡的叉叉树</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a> <div>1.正向先行断言(?=)正向先行断言用于检查某个模式在当前匹配位置后是否存在,而不包括该模式本身在内。语法:X(?=Y)这个模式将匹配X,前提是X后面必须跟着Y。但只会返回X的匹配结果。示例:\d(?=dollars)在这个例子中,\d会匹配任何单个数字,但只会在数字后面跟着"dollars"的情况下匹配。字符串5dollars可以匹配到5,而5euros则不会。2.反向先行断言(?<=)反向先行</div> </li> <li><a href="/article/1895342840188301312.htm" title="文本操作基础知识:正则表达式" target="_blank">文本操作基础知识:正则表达式</a> <span class="text-muted">时之彼岸Φ</span> <a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">基础知识</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a> <div>目录摘要:一、语法二、匹配模式pattern1、普通字符[]2、限定字符3、定位字符4、运算字符()三、修饰符flags四、各语言的正则使用1、Python的re参考资料:摘要:常用匹配:[A-C]、[^A-C]、\w、\d、\n、\r、\t、*、+、?、{n,m}。python的re.findall函数一、语法/pattern/flagspattern:表示匹配模式,需要匹配的具体内容。flag</div> </li> <li><a href="/article/1895330991325638656.htm" title="深度学习进阶:构建多层神经网络" target="_blank">深度学习进阶:构建多层神经网络</a> <span class="text-muted">孤寂大仙v</span> <a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>在上一篇文章中,我们从零开始构建了一个简单的两层神经网络,并通过异或问题(XOR)展示了神经网络的强大能力。今天,我们将进一步深入,构建一个更复杂的多层神经网络,并引入更多高级概念,如多隐藏层、激活函数选择、正则化等。我们还会使用更复杂的分类任务来训练模型,并评估其性能。1.多层神经网络的结构在实际应用中,深度学习模型通常包含多个隐藏层,这种结构被称为深度神经网络(DNN)。多层神经网络能够学习更</div> </li> <li><a href="/article/1895192129714581504.htm" title="在线正则网站" target="_blank">在线正则网站</a> <span class="text-muted">harmful_sheep</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%AB%99/1.htm">网站</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>地址:https://jex.im/regulex/#!flags=&re=Github地址:https://github.com/CJex/regulex[1]https://jex.im/regulex/#!flags=&re=:https://jex.im/regulex/#!flags=&re=[2]https://github.com/CJex/regulex:https://githu</div> </li> <li><a href="/article/1895179646459244544.htm" title="Linux文本处理三剑客之sed命令" target="_blank">Linux文本处理三剑客之sed命令</a> <span class="text-muted">碳烤小卤蛋</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>Linux文本处理三剑客之sed命令Linux用于处理文本数据的三剑客,分别为grep命令、awk命令和sed命令,再加上正则表达式,就可以处理文本文件中各种常见的数据需求了。一般来说,grep命令倾向于查找,sed命令倾向于编辑更新,awk命令则倾向于数据的分析和处理,本篇将重点梳理sed命令及常见的使用场景。一、sed简介sed是文本处理中非常好用的工具,能够完美的配合正则表达式,主要用来自动</div> </li> <li><a href="/article/1895146089124786176.htm" title="Python 分词解析+词云可视化(含停用词文件)" target="_blank">Python 分词解析+词云可视化(含停用词文件)</a> <span class="text-muted">布凯彻-劳斯基</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/1.htm">数学建模</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D/1.htm">中文分词</a><a class="tag" taget="_blank" href="/search/%E8%AF%8D%E4%BA%91/1.htm">词云</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>代码:importre#导入正则表达式库importjieba#导入结巴分词库importcollections#导入集合库importnumpy#导入numpy库importwordcloud#导入词云库fromPILimportImage#导入PIL图像处理库importmatplotlib.pyplotasplt#导入matplotlib绘图库fromwordcloudimportImage</div> </li> <li><a href="/article/1895084658543095808.htm" title="【Linux入门】正则三剑客:grep、sed和wak" target="_blank">【Linux入门】正则三剑客:grep、sed和wak</a> <span class="text-muted">Karoku066</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/bash/1.htm">bash</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a> <div>文章目录gerp一、基本概述二、基本语法三、常用选项1.搜索选项2.正则表达式选项3.其他选项四、示例sedsed编辑器的介绍sed流编辑器的工作过程解决sed命令处理大文件效率慢的问题解决方案一:使用`split`命令分割文件解决方案二:优化`sed`命令的使用解决方案三:使用更高效的工具解决方案四:并行处理总结sed命令的基本格式与选项基本操作格式执行多条命令的格式常用选项sed命令的操作符s</div> </li> <li><a href="/article/1895006090383388672.htm" title="jmeter 添加html断言,Jmeter接口测试④——响应断言" target="_blank">jmeter 添加html断言,Jmeter接口测试④——响应断言</a> <span class="text-muted">土拨鼠没有冬天</span> <a class="tag" taget="_blank" href="/search/jmeter/1.htm">jmeter</a><a class="tag" taget="_blank" href="/search/%E6%B7%BB%E5%8A%A0html%E6%96%AD%E8%A8%80/1.htm">添加html断言</a> <div>Jmeter接口测试④——响应断言Jmeter接口测试④——响应断言本节以Jmeter接口测试③——GET请求返回结果为例。一、添加响应断言响应断言:对服务器的响应接口进行断言校验,来判断接口测试得到的接口返回值是否正确。get请求右键->添加->断言->响应断言说明:applyto:参考Jmeter接口测试②——正则提取器测试字段:⑴一般的http响应,都勾选“响应文本”;⑵url样本是对sam</div> </li> <li><a href="/article/1894995494925561856.htm" title="机器学习中的过拟合、欠拟合与正则化" target="_blank">机器学习中的过拟合、欠拟合与正则化</a> <span class="text-muted">喜-喜</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>  在机器学习的世界里,过拟合与欠拟合是模型训练过程中常常会遇到的两大问题,而正则化则是应对过拟合的重要手段。理解它们对于构建高性能的机器学习模型至关重要。一、过拟合与欠拟合(一)过拟合  定义:过拟合指的是模型在训练数据上表现得非常好,几乎能完美地拟合训练数据中的每一个细节,但在测试数据或新数据上却表现很差,泛化能力极低。简单来说,就是模型过度学习了训练数据中的噪声和细节,而忽略了数据背后的真实</div> </li> <li><a href="/article/1894966381510717440.htm" title="Nginx 的 proxy_pass 使用简介" target="_blank">Nginx 的 proxy_pass 使用简介</a> <span class="text-muted">m0_74825223</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>文章目录1.基本概念1.1`proxy_pass`概述1.2语法1.3使用场景2.基本用法2.1HTTP代理2.1.1基本示例2.1.2绝对根路径vs相对路径2.2Stream代理3.高级用法3.1正则匹配3.2变量使用3.3重定向3.4精确匹配3.5`if`语句3.6`limit_except`4.实际案例4.1转发到多个后端服务器4.2转发到不同路径4.3转发到UnixDomainSocket</div> </li> <li><a href="/article/1894913812289613824.htm" title="正则大全,一定有你需要的,进来搜" target="_blank">正则大全,一定有你需要的,进来搜</a> <span class="text-muted">二川bro</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>那些常用的正则-大全正则表达式(RegularExpression,简称regex或regexp)是编程中一个非常强大的工具,它用于匹配字符串中字符的组合。今天,我将为大家总结100个常用的正则表达式1.匹配数字正则:^\d+$描述:匹配一个或多个数字。2.匹配非负整数正则:^[0-9]+$或^\d*$(包含0)描述:匹配非负整数(包括0)。3.匹配正整数正则:^[1-9]\d*$描述:匹配正整数</div> </li> <li><a href="/article/1894855546125742080.htm" title="python的django框架http请求_Django框架学习——Django(四)请求与响应" target="_blank">python的django框架http请求_Django框架学习——Django(四)请求与响应</a> <span class="text-muted">weixin_39895881</span> <div>请求回想一下,利用HTTP协议向服务器传参有几种途径?提取URL的特定部分,如/weather/beijing/2018,可以在服务器端的路由中用正则表达式截取;查询字符串(querystring),形如key1=value1&key2=value2;请求体(body)中发送的数据,比如表单数据、json、xml;在http报文的头(header)中。1、URL路径参数在定义路由URL时,可以使用</div> </li> <li><a href="/article/1894833722167980032.htm" title="Java进阶,时间与日期,包装类,正则表达式" target="_blank">Java进阶,时间与日期,包装类,正则表达式</a> <span class="text-muted">m0_74824635</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>Java时间与日期,包装类,正则表达式一.时间与日期1.DateDate类概述Date类代表当前所在系统的日期时间信息。Date的构造器名称说明publicDate()创建一个Date对象,代表的是系统当前此刻日期时间。Date的常用方法名称说明publiclonggetTime()返回从1970年1月1日00:00:00走到此刻的总的毫秒数案例/**学会使用Date类处理时间,获取时间的信息*/</div> </li> <li><a href="/article/1894831831589646336.htm" title="第十三站:卷积神经网络(CNN)的优化" target="_blank">第十三站:卷积神经网络(CNN)的优化</a> <span class="text-muted">武狐肆骸</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/cnn/1.htm">cnn</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a> <div>前言:在上一期我们构建了基本的卷积神经网络之后,接下来我们将学习一些提升网络性能的技巧和方法。这些优化技术包括数据增强、网络架构的改进、正则化技术。1.数据增强(DataAugmentation)数据增强是提升深度学习模型泛化能力的一种常见手段。通过对训练数据进行各种随机变换,可以生成更多的训练样本,帮助模型避免过拟合。常见的数据增强方法:旋转(Rotation):随机旋转图像,增强模型对旋转变换</div> </li> <li><a href="/article/1894739647750270976.htm" title="uniCloud云开发笔记一" target="_blank">uniCloud云开发笔记一</a> <span class="text-muted">萧寂173</span> <a class="tag" taget="_blank" href="/search/uniapp/1.htm">uniapp</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>文章目录云空间配置创建云空间创建数据库项目连接云空间云函数创建和使用云数据库操作云函数通过传统方式操作数据库查查询全部数据查询数据总条数分页查询正序倒序查询查询字段过滤where查询正则表达式模糊搜索增单个新增批量新增改单个修改批量修改字段是数组或对象的修改更新操作符覆盖性修改(不会保留其他字段,修改时传什么字段这个数据就是什么)删单个删除条件删除(批量删除)云函数的上传和下载前端项目托管配置域名</div> </li> <li><a href="/article/1894646480279498752.htm" title="正则化技术和模型融合等方法提高模型的泛化能力" target="_blank">正则化技术和模型融合等方法提高模型的泛化能力</a> <span class="text-muted">小赖同学啊</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>在机器学习和深度学习中,提高模型的泛化能力至关重要,正则化技术和模型融合是两种有效的手段,以下将详细介绍它们的原理、常见方法及代码示例。正则化技术原理正则化是通过在损失函数中添加一个正则化项,来限制模型的复杂度,防止模型过拟合训练数据,从而提高模型在未见过数据上的泛化能力。正则化项通常与模型的参数相关,通过惩罚过大的参数值,使模型更加平滑和简单。常见方法L1正则化(Lasso正则化)原理:在损失函</div> </li> <li><a href="/article/1894552672892153856.htm" title="python 爬虫 智联招聘" target="_blank">python 爬虫 智联招聘</a> <span class="text-muted">风华明远</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>本方法使用cookie的方法下载智联招聘的职位。主要就是要先登录智联招聘,然后将对应的cookie作为爬虫访问的header。代码如下:importrequestsimportreimportxlwtdefparse_one_page(html):'''解析HTML代码,提取有用信息并返回'''#正则表达式进行解析pattern=re.compile('(.*?).*?''(.*?).*?''\\</div> </li> <li><a href="/article/1894549893016514560.htm" title="数据采集技术:selenium/正则匹配/xpath/beautifulsoup爬虫实例" target="_blank">数据采集技术:selenium/正则匹配/xpath/beautifulsoup爬虫实例</a> <span class="text-muted">写代码的中青年</span> <a class="tag" taget="_blank" href="/search/3%E5%A4%A9%E5%85%A5%E9%97%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">3天入门机器学习</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a><a class="tag" taget="_blank" href="/search/beautifulsoup/1.htm">beautifulsoup</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/xpath/1.htm">xpath</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a> <div>专栏介绍1.专栏面向零基础或基础较差的机器学习入门的读者朋友,旨在利用实际代码案例和通俗化文字说明,使读者朋友快速上手机器学习及其相关知识体系。2.专栏内容上包括数据采集、数据读写、数据预处理、分类\回归\聚类算法、可视化等技术。3.需要强调的是,专栏仅介绍主流、初阶知识,每一技术模块都是AI研究的细分领域,同更多技术有所交叠,此处不进行讨论和分享。数据采集技术:selenium/正则匹配/xpa</div> </li> <li><a href="/article/1894548881727877120.htm" title="CPD(Coherent Point Drift)非刚性点云配准算法" target="_blank">CPD(Coherent Point Drift)非刚性点云配准算法</a> <span class="text-muted">点云SLAM</span> <a class="tag" taget="_blank" href="/search/%E7%82%B9%E4%BA%91%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86%E6%8A%80%E6%9C%AF/1.htm">点云数据处理技术</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%A6%82%E7%8E%87%E8%AE%BA/1.htm">概率论</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E9%9D%9E%E5%88%9A%E6%80%A7%E9%85%8D%E5%87%86/1.htm">非刚性配准</a><a class="tag" taget="_blank" href="/search/CPD%E9%85%8D%E5%87%86%E7%AE%97%E6%B3%95/1.htm">CPD配准算法</a><a class="tag" taget="_blank" href="/search/EM%E7%AE%97%E6%B3%95/1.htm">EM算法</a><a class="tag" taget="_blank" href="/search/%E9%9D%9E%E5%88%9A%E6%80%A7%E6%8B%BC%E6%8E%A5/1.htm">非刚性拼接</a> <div>CPD(CoherentPointDrift)非刚性点云配准算法详解一、算法概述CPD(CoherentPointDrift)是一种基于概率模型的非刚性点云配准方法,由AndriyMyronenko等人在2009年提出。它通过将点云配准问题转化为概率密度估计问题,结合高斯混合模型(GMM)与正则化形变场,能够有效处理复杂形变(如人体运动、器官形变)的点云对齐任务。核心特点:非刚性对齐:支持大范围、</div> </li> <li><a href="/article/57.htm" title="多线程编程之join()方法" target="_blank">多线程编程之join()方法</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/JOIN/1.htm">JOIN</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a> <div>现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢?   Java实现过程如下: public class T1 implements Runnabl</div> </li> <li><a href="/article/184.htm" title="java中switch的使用" target="_blank">java中switch的使用</a> <span class="text-muted">bingyingao</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/break/1.htm">break</a><a class="tag" taget="_blank" href="/search/continue/1.htm">continue</a> <div>java中的switch仅支持case条件仅支持int、enum两种类型。 用enum的时候,不能直接写下列形式。 switch (timeType) { case ProdtransTimeTypeEnum.DAILY: break; default: br</div> </li> <li><a href="/article/311.htm" title="hive having count 不能去重" target="_blank">hive having count 不能去重</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/%E5%8E%BB%E9%87%8D/1.htm">去重</a><a class="tag" taget="_blank" href="/search/having+count/1.htm">having count</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E6%95%B0/1.htm">计数</a> <div>hive在使用having count()是,不支持去重计数   hive (default)> select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)>1 limit 10;  FAILED: SemanticExcep</div> </li> <li><a href="/article/438.htm" title="WebSphere对JSP的缓存" target="_blank">WebSphere对JSP的缓存</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/WAS+JSP+%E7%BC%93%E5%AD%98/1.htm">WAS JSP 缓存</a> <div>      对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。        现服务</div> </li> <li><a href="/article/565.htm" title="设计模式总结" target="_blank">设计模式总结</a> <span class="text-muted">朱辉辉33</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>1.工厂模式   1.1 工厂方法模式 (由一个工厂类管理构造方法)      1.1.1普通工厂模式(一个工厂类中只有一个方法)      1.1.2多工厂模式(一个工厂类中有多个方法)      1.1.3静态工厂模式(将工厂类中的方法变成静态方法) &n</div> </li> <li><a href="/article/692.htm" title="实例:供应商管理报表需求调研报告" target="_blank">实例:供应商管理报表需求调研报告</a> <span class="text-muted">老A不折腾</span> <a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E8%A1%A8%E7%B3%BB%E7%BB%9F/1.htm">报表系统</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E8%A1%A8%E8%BD%AF%E4%BB%B6/1.htm">报表软件</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8C%96%E9%80%89%E5%9E%8B/1.htm">信息化选型</a> <div>引言 随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标 1、通过报表为采购决策提供数据分析与支撑 2、对供应商进行综合评估以及管理,合理管理和</div> </li> <li><a href="/article/819.htm" title="mysql" target="_blank">mysql</a> <span class="text-muted">林鹤霄</span> <div>转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html mysql -uroot -p ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)   [root@centos var]# service mysql</div> </li> <li><a href="/article/946.htm" title="Linux下多线程堆栈查看工具(pstree、ps、pstack)" target="_blank">Linux下多线程堆栈查看工具(pstree、ps、pstack)</a> <span class="text-muted">aigo</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>原文:http://blog.csdn.net/yfkiss/article/details/6729364   1. pstree pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552)  &n</div> </li> <li><a href="/article/1073.htm" title="html input与textarea 值改变事件" target="_blank">html input与textarea 值改变事件</a> <span class="text-muted">alxw4616</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>// 文本输入框(input) 文本域(textarea)值改变事件 // onpropertychange(IE) oninput(w3c) $('input,textarea').on('propertychange input', function(event) {      console.log($(this).val()) });   </div> </li> <li><a href="/article/1200.htm" title="String类的基本用法" target="_blank">String类的基本用法</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/String/1.htm">String</a> <div>  字符串的用法;     // 根据字节数组创建字符串 byte[] by = { 'a', 'b', 'c', 'd' }; String newByteString = new String(by);         1,length()  获取字符串的长度     &nbs</div> </li> <li><a href="/article/1327.htm" title="JDK1.5 Semaphore实例" target="_blank">JDK1.5 Semaphore实例</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a><a class="tag" taget="_blank" href="/search/Semaphore/1.htm">Semaphore</a> <div>Semaphore类        一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。 S</div> </li> <li><a href="/article/1454.htm" title="使用GZip来压缩传输量" target="_blank">使用GZip来压缩传输量</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/GZip/1.htm">GZip</a> <div>        启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。         PJL Compressi</div> </li> <li><a href="/article/1581.htm" title="【Java范型三】Java范型详解之范型类型通配符" target="_blank">【Java范型三】Java范型详解之范型类型通配符</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>    定义如下一个简单的范型类,   package com.tom.lang.generics; public class Generics<T> { private T value; public Generics(T value) { this.value = value; } } </div> </li> <li><a href="/article/1708.htm" title="【Hadoop十二】HDFS常用命令" target="_blank">【Hadoop十二】HDFS常用命令</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>1. 修改日志文件查看器   hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml cat edits.xml   修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志   2. fsimage查看HDFS中的块信息等 &nb</div> </li> <li><a href="/article/1835.htm" title="怎样区别nginx中rewrite时break和last" target="_blank">怎样区别nginx中rewrite时break和last</a> <span class="text-muted">ronin47</span> <div>在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。 location /    {         proxy_pass http://test; </div> </li> <li><a href="/article/1962.htm" title="java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m" target="_blank">java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.ArrayList; import java.util.List; import java.util.Stack; public class CombinationToSum { /* 第21 题 2010 年中兴面试题 编程求解: 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等</div> </li> <li><a href="/article/2089.htm" title="eclipse svn 帐号密码修改问题" target="_blank">eclipse svn 帐号密码修改问题</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a><a class="tag" taget="_blank" href="/search/svn%E5%B8%90%E5%8F%B7%E5%AF%86%E7%A0%81%E4%BF%AE%E6%94%B9/1.htm">svn帐号密码修改</a> <div>问题描述:      Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。 解决思路:      删除subclipse记录的帐号、密码信息,重新输入</div> </li> <li><a href="/article/2216.htm" title="[电子商务]传统商务活动与互联网的结合" target="_blank">[电子商务]传统商务活动与互联网的结合</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%94%B5%E5%AD%90%E5%95%86%E5%8A%A1/1.htm">电子商务</a> <div>       某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。        如何避免销售量和利润率增加的</div> </li> <li><a href="/article/2343.htm" title="java 解析 properties-使用 Properties-可以指定配置文件路径" target="_blank">java 解析 properties-使用 Properties-可以指定配置文件路径</a> <span class="text-muted">cuityang</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/properties/1.htm">properties</a> <div>#mq xdr.mq.url=tcp://192.168.100.15:61618; import java.io.IOException; import java.util.Properties; public class Test { String conf = "log4j.properties"; private static final</div> </li> <li><a href="/article/2470.htm" title="Java核心问题集锦" target="_blank">Java核心问题集锦</a> <span class="text-muted">darrenzhu</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80/1.htm">基础</a><a class="tag" taget="_blank" href="/search/%E6%A0%B8%E5%BF%83/1.htm">核心</a><a class="tag" taget="_blank" href="/search/%E9%9A%BE%E7%82%B9/1.htm">难点</a> <div>注意,这里的参考文章基本来自Effective Java和jdk源码 1)ConcurrentModificationException 当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是: 1)用listIterator, 它支持在遍历的过程中修改元素, 2)不用listIterator, new一个</div> </li> <li><a href="/article/2724.htm" title="1分钟学会Markdown语法" target="_blank">1分钟学会Markdown语法</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/markdown/1.htm">markdown</a> <div>markdown 简明语法 基本符号 *,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号 空白行表示另起一个段落 `是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签 换行 单一段落( <p>) 用一个空白行 连续两个空格 会变成一个 <br> 连续3个符号,然后是空行</div> </li> <li><a href="/article/2851.htm" title="Gson使用二(GsonBuilder)" target="_blank">Gson使用二(GsonBuilder)</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/gson/1.htm">gson</a><a class="tag" taget="_blank" href="/search/GsonBuilder/1.htm">GsonBuilder</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述     GsonBuilder用来定制java跟json之间的转换格式   二.基本使用 实体测试类: 温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField</div> </li> <li><a href="/article/2978.htm" title="报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList" target="_blank">报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList</a> <span class="text-muted">gundumw100</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f</div> </li> <li><a href="/article/3105.htm" title="JavaWeb之JSP指令" target="_blank">JavaWeb之JSP指令</a> <span class="text-muted">ihuning</span> <a class="tag" taget="_blank" href="/search/javaweb/1.htm">javaweb</a> <div>  要点   JSP指令简介  page指令  include指令    JSP指令简介    JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。 JSP指令的基本语法格式: <%@ 指令 属性名="</div> </li> <li><a href="/article/3232.htm" title="mac上编译FFmpeg跑ios" target="_blank">mac上编译FFmpeg跑ios</a> <span class="text-muted">啸笑天</span> <a class="tag" taget="_blank" href="/search/ffmpeg/1.htm">ffmpeg</a> <div>1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl 2、安装yasm-1.2.0 curl http://www.tortall.net/projects/yasm</div> </li> <li><a href="/article/3359.htm" title="sql mysql oracle中字符串连接" target="_blank">sql mysql oracle中字符串连接</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a> <div>有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的: MySQL: CONCAT() Oracle: CONCAT(), || SQL Server: + CONCAT() 的语法如下: Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。 请注意,Oracle的CON</div> </li> <li><a href="/article/3486.htm" title="Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate" target="_blank">Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate</a> <span class="text-muted">qiaolevip</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/%E7%BA%B5%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">纵观千象</a> <div>// 报错如下: $ git pull origin master fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce rtificate   // 原因: 由于git最新版默认使用ssl安全验证,但是我们是使用的git未设</div> </li> <li><a href="/article/3613.htm" title="windows命令行设置wifi" target="_blank">windows命令行设置wifi</a> <span class="text-muted">surfingll</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/wifi/1.htm">wifi</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0%E6%9C%ACwifi/1.htm">笔记本wifi</a> <div>还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么 教你命令行设置 笔记本电脑wifi: 1、开启wifi命令 netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456 netsh wlan start hostednetwork pause 其中pause是等待输入,可以去掉 2、</div> </li> <li><a href="/article/3740.htm" title="Linux(Ubuntu)下安装sysv-rc-conf" target="_blank">Linux(Ubuntu)下安装sysv-rc-conf</a> <span class="text-muted">wmlJava</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/sysv-rc-conf/1.htm">sysv-rc-conf</a> <div>安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf 操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。     背景知识 sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf</div> </li> <li><a href="/article/3867.htm" title="svn切换环境,重发布应用多了javaee标签前缀" target="_blank">svn切换环境,重发布应用多了javaee标签前缀</a> <span class="text-muted">zengshaotao</span> <a class="tag" taget="_blank" href="/search/javaee/1.htm">javaee</a> <div>更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。   然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。   检出</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>