正则表达式-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/1941711778840899584.htm" title="深入理解 grep 命令:从基础匹配到正则表达式的全面指南" target="_blank">深入理解 grep 命令:从基础匹配到正则表达式的全面指南</a> <span class="text-muted">线条1</span> <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/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>一、grep命令概述在Linux系统中,grep(GlobalRegularExpressionPrint)是一个强大的文本搜索工具,它能够使用正则表达式在文本文件中查找匹配的行,并将这些行输出。从系统管理员到开发人员,grep都是日常工作中不可或缺的工具,广泛应用于日志分析、代码搜索、数据过滤等场景。二、grep基础匹配用法1.普通文本匹配命令格式:grep"pattern"filename示例</div> </li> <li><a href="/article/1941664229509623808.htm" title="CHAIN(GAN的一种)训练自己的数据集" target="_blank">CHAIN(GAN的一种)训练自己的数据集</a> <span class="text-muted">这张生成的图像能检测吗</span> <a class="tag" taget="_blank" href="/search/%E4%BC%98%E8%B4%A8GAN%E6%A8%A1%E5%9E%8B%E8%AE%AD%E7%BB%83%E8%87%AA%E5%B7%B1%E7%9A%84%E6%95%B0%E6%8D%AE%E9%9B%86/1.htm">优质GAN模型训练自己的数据集</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%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><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/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>简介简介:作者针对数据有限场景下GANs训练中的判别器过拟合问题,提出了CHAIN(Lipschitz连续性约束归一化)方法。作者首先从理论角度分析了GAN泛化误差,发现减少判别器权重梯度范数对提升泛化能力至关重要。然后深入研究了批归一化(BN)在GAN判别器中应用困难的根本原因,通过理论分析证明BN的中心化和缩放步骤会导致梯度爆炸。基于这些发现,CHAIN设计了两个核心模块:用零均值正则化替代中</div> </li> <li><a href="/article/1941505393754697728.htm" title="Python网络数据采集的方法" target="_blank">Python网络数据采集的方法</a> <span class="text-muted">蚂蚁ai</span> <a class="tag" taget="_blank" href="/search/Python%E9%9B%B6%E5%9F%BA%E7%A1%80/1.htm">Python零基础</a><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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>听说还有很多小伙伴还不知道网络数据采集的方法,让我来看看都有谁,不说话我就点名了。我把教程分享在下面了,需要的小伙伴自己领取。(https://jq.qq.com/?_wv=1027&k=kYtMeTfp)一般情况下以下四种方式都是可以匹配到结果的,只是复杂程度不一致,根据情况进行选择。◾正则re的使用◾bs4的使用◾xpath◾PyQuery①Re(RegularExpression正则表达式)</div> </li> <li><a href="/article/1941461647017177088.htm" title="python 海象运算符_python := 海象运算符" target="_blank">python 海象运算符_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/%E6%B5%B7%E8%B1%A1%E8%BF%90%E7%AE%97%E7%AC%A6/1.htm">海象运算符</a> <div>最近在做算法题越来越发现python写法真的挺好用的记下来map(lambdax:sum(x))中lambda代表匿名函数re.findall(r'0+|1+',s)是正则表达式:=海象运算符转if(n:=len(a))>10:print(f"Lististoolong({n}elements,expected10:print(f"Lististolong({len(a)}elements,exp</div> </li> <li><a href="/article/1941460763419930624.htm" title="python := 海象运算符" target="_blank">python := 海象运算符</a> <span class="text-muted">challenge-linge</span> <a class="tag" taget="_blank" href="/search/it/1.htm">it</a><a class="tag" taget="_blank" href="/search/it/1.htm">it</a> <div>参考视频教程:**体系课-Go+Python双语言混合开发盯紧技术先机抓紧高薪机遇**最近在做算法题越来越发现python写法真的挺好用的记下来map(lambdax:sum(x))中lambda代表匿名函数re.findall(r’0+|1+’,s)是正则表达式:=海象运算符转背景:python3.8正式版最近更新了,其中PEP572中的海象运算符获得正式python版本的支持.我看了官网的文档</div> </li> <li><a href="/article/1941175492283527168.htm" title="【AI大模型面试八股文】大模型训练中如何应对灾难性遗忘问题?" target="_blank">【AI大模型面试八股文】大模型训练中如何应对灾难性遗忘问题?</a> <span class="text-muted">一叶千舟</span> <a class="tag" taget="_blank" href="/search/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%BA%94%E7%94%A8%E3%80%90%E5%85%AB%E8%82%A1%E6%96%87%E3%80%91/1.htm">AI大模型应用【八股文】</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/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>目录✅面试回答模板:一、什么是灾难性遗忘?举个通俗的例子:二、灾难性遗忘是怎么发生的?常见触发情境:三、我们为什么要关注灾难性遗忘?四、主流解决方案汇总✅1.固定部分参数(FeatureExtraction)✅2.正则化策略(Regularization)✅3.回放机制(Rehearsal/Replay)✅4.参数隔离(ParameterIsolation)✅5.使用提示学习(PromptLear</div> </li> <li><a href="/article/1941097581635497984.htm" title="正则表达式" target="_blank">正则表达式</a> <span class="text-muted"></span> <div>运用正则表达式进行爬虫就是把想要得到的信息爬取出来贪婪爬取和非贪婪爬取replace(正则表达式,新的内容)符合正则表达式的被替换成新的内容(返回值是String)split(正则表达式)按照正则表达式规则切割字符串(返回值是String[]),遍历数组就可以得到了分组其实就是把内容分组,然后用组号代替内容复制,这样就不用多写几遍练习:其实正则表达式不用背,以后要用的时候直接右键选择插件下载的选择</div> </li> <li><a href="/article/1940700336754847744.htm" title="【Torch】nn.Dropout算法详解" target="_blank">【Torch】nn.Dropout算法详解</a> <span class="text-muted">油泼辣子多加</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%AE%97%E6%B3%95/1.htm">算法</a> <div>1.定义nn.Dropout是PyTorch中用于防止神经网络过拟合的正则化层。其核心思想是在训练阶段随机“丢弃”(置零)部分神经元的输出,以减少网络对特定神经元的过度依赖;在推理阶段则保持所有神经元输出不变。2.输入与输出输入(Input)任意形状的浮点张量(如torch.float32、torch.float64等),常见于全连接层或卷积层的激活输出。输出(Output)与输入张量形状、dty</div> </li> <li><a href="/article/1940340088856702976.htm" title="Java 正则表达式" target="_blank">Java 正则表达式</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/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>基本语法元字符转义号\\限定符符号含义*指定前面内容可以出现0次及以上+指定前面内容可以出现1次及以上。至少会出现一次?指定前面内容可以出现0次或一次{n}指定前面的内容只能出现n次{n,}指定前面内容至少出现n次{n,m}指定前面内容至少出现n次但不多于m次选择匹配符符号解释|逻辑或的含义,符号两边内容有一个成立即可|分组组合和反向引用符分组常用分组构造形式说明(pattern)非命名捕获。捕获</div> </li> <li><a href="/article/1940183602411139072.htm" title="经典文生图的GAN模型-HDGAN介绍" target="_blank">经典文生图的GAN模型-HDGAN介绍</a> <span class="text-muted">这张生成的图像能检测吗</span> <a class="tag" taget="_blank" href="/search/GAN%E7%B3%BB%E5%88%97/1.htm">GAN系列</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%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><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/%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/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/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> <div>简介简介:这篇论文提出了一种名为HDGAN(Hierarchically-nestedDiscriminatorsGAN)的新方法,用于解决文本到图像合成这一挑战性任务。该方法的主要创新点包括:分层嵌套对抗目标:在网络层次结构内部引入配套的分层嵌套对抗目标,正则化中层表示并辅助生成器训练单流生成器架构:提出可扩展的单流生成器架构,更好地适应联合鉴别器并将生成图像提升到高分辨率多目的对抗损失:采用多</div> </li> <li><a href="/article/1940098386241843200.htm" title="【深度学习|学习笔记】如何在深度学习中使用 正则化技术 进行模型压缩、稀疏建模和迁移学习调优?" target="_blank">【深度学习|学习笔记】如何在深度学习中使用 正则化技术 进行模型压缩、稀疏建模和迁移学习调优?</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%E5%9F%BA%E7%A1%80%E7%AE%97%E6%B3%95%E4%BC%98%E8%B4%A8%E7%AC%94%E8%AE%B02/1.htm">机器学习基础算法优质笔记2</a><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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E8%BF%81%E7%A7%BB%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><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>【深度学习|学习笔记】如何在深度学习中使用正则化技术进行模型压缩、稀疏建模和迁移学习调优?【深度学习|学习笔记】如何在深度学习中使用正则化技术进行模型压缩、稀疏建模和迁移学习调优?文章目录【深度学习|学习笔记】如何在深度学习中使用正则化技术进行模型压缩、稀疏建模和迁移学习调优?✅一、使用正则化进行模型压缩(ModelCompression)目标:方法:L1正则化促使权重稀疏化代码示例:后续压缩步骤</div> </li> <li><a href="/article/1940022739997880320.htm" title="ORACLE数据库转国产阿里OceanBase数据库" target="_blank">ORACLE数据库转国产阿里OceanBase数据库</a> <span class="text-muted"></span> <div>1.BLOB类型修改将接口内oracle.sql.BLOB改为java.sql.Blob2.REGEXP_LIKE判断函数正则表达式中字符转义问题OB的正则表达式使用的是标准的Linux模式,oracle是黑盒子,在处理部分转义符([]+)的时候,Oracle无需使用转义符,OB务必使用转义符,加/转义处理,例如在regexp_like(t.xx,’^(+|[0-9]+)$’)改为regexp_l</div> </li> <li><a href="/article/1939840211840200704.htm" title="行为正则化与顺序策略优化结合的离线多智能体学习算法" target="_blank">行为正则化与顺序策略优化结合的离线多智能体学习算法</a> <span class="text-muted"></span> <div>离线多智能体强化学习(MARL)是一个新兴领域,目标是在从预先收集的数据集中学习最佳的多智能体策略。随着人工智能技术的发展,多智能体系统在诸如自动驾驶、智能家居、机器人协作以及智能调度决策等方面展现了巨大的应用潜力。但现有的离线MARL方法也面临很多挑战,仍存在不协调行为和分布外联合动作的问题。为了应对这些挑战,中山大学计算机学院、美团履约平台技术部开展了学术合作项目,并取得了一些的成果,希望分享</div> </li> <li><a href="/article/1939800748388839424.htm" title="云计算在可视化非线性偏微分方程动力学中的应用:拟线性和半线性示例-AI云计算数值分析和代码验证" target="_blank">云计算在可视化非线性偏微分方程动力学中的应用:拟线性和半线性示例-AI云计算数值分析和代码验证</a> <span class="text-muted">亚图跨际</span> <a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/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>“拟线性”和“半线性”代表了非线性偏微分方程(PDEs)这一大类中的重要分类。其区别主要在于非线性的表现形式,特别是与未知函数的最高阶导数之间的关系。在偏微分方程的研究中,将其分为线性、半线性、拟线性和完全非线性至关重要,因为用于分析和求解它们(例如,解的存在性、唯一性、正则性、数值方法)的数学技术根据其线性性质而显著不同。非线性偏微分方程通常比线性偏微分方程更难求解和分析,即使在非线性类别中,由</div> </li> <li><a href="/article/1939707843087233024.htm" title="Oracle 进阶语法实战:从多维分析到数据清洗的深度应用(第四课)" target="_blank">Oracle 进阶语法实战:从多维分析到数据清洗的深度应用(第四课)</a> <span class="text-muted">AI、少年郎</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>在《Oracle树形统计再进阶》(第三课)基础上,我们跳出传统SQL聚合框架,探索Oracle特有的高级语法特性,包括多维分析神器MODEL子句、数据清洗利器正则表达式、PL/SQL存储过程优化,以及基于执行计划的查询调优技巧。这些技术能解决传统方法难以处理的复杂场景,如动态列生成、不规则数据清洗、批量数据处理等。一、MODEL子句:多维数据建模与动态透视业务场景:动态生成各部门全年度各季度请假类</div> </li> <li><a href="/article/1939470467626758144.htm" title="Qt 各种功能学习笔记" target="_blank">Qt 各种功能学习笔记</a> <span class="text-muted">栈不收</span> <a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>目录1.Qt关于数据库1.1Qt链接数据库1.2将数据库的模型显示在控件中2.Qt关于控件2.1用正则表达式设置输入框只能输入正浮点数2.2设置QDateTimeEdit的时间格式和设置为当前时间1.Qt关于数据库1.1Qt链接数据库基础教学:使用Qt链接MySql数据库_qt连接mysql_栈不收的博客-CSDN博客需要注意的问题:在链接MySQL的时候,首先要确保MySQL已经安装成功在目录Q</div> </li> <li><a href="/article/1939299029858971648.htm" title="【实战演练】运维工程师初试必胜指南:解析公司笔试真题与技巧分享" target="_blank">【实战演练】运维工程师初试必胜指南:解析公司笔试真题与技巧分享</a> <span class="text-muted">江湖有缘</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E5%B7%A5%E7%A8%8B%E5%B8%88%E9%9D%A2%E8%AF%95%E4%B8%93%E6%A0%8F/1.htm">运维工程师面试专栏</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/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%B1%82%E8%81%8C/1.htm">求职</a> <div>【实战演练】运维工程师初试必胜指南:解析公司笔试真题与技巧分享一、填空题1.第1题:修改网卡IP地址2.第2题:基本文件相关命令解释3.第3题:新建用户4.第4题:设置文件权限5.第5题:路由协议RIP6.第6题:ping命令相关7.第7题:创建目录8.第8题:正则表达式9.第9题:列出文件10.第10题:如何查看系统信息11.第11题:重命名文件12.第12题:修改用户密码13.第13题:如何向</div> </li> <li><a href="/article/1939282266047967232.htm" title="【深度学习|学习笔记】什么是正则化?如何理解正则化?L0、L1、L2正则化的起源、发展、原理、应用和对比详解,附代码。" target="_blank">【深度学习|学习笔记】什么是正则化?如何理解正则化?L0、L1、L2正则化的起源、发展、原理、应用和对比详解,附代码。</a> <span class="text-muted">努力毕业的小土博^_^</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/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">学习笔记</a><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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/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><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>【深度学习|学习笔记】什么是正则化?如何理解正则化?L0、L1、L2正则化的起源、发展、原理、应用和对比详解,附代码。【深度学习|学习笔记】什么是正则化?如何理解正则化?L0、L1、L2正则化的起源、发展、原理、应用和对比详解,附代码。文章目录【深度学习|学习笔记】什么是正则化?如何理解正则化?L0、L1、L2正则化的起源、发展、原理、应用和对比详解,附代码。前言一、什么是正则化?为什么需要它?✅</div> </li> <li><a href="/article/1939081787967860736.htm" title="Golang动态路由实现:灵活处理URL路径" target="_blank">Golang动态路由实现:灵活处理URL路径</a> <span class="text-muted">Golang编程笔记</span> <a class="tag" taget="_blank" href="/search/Golang%E7%BC%96%E7%A8%8B%E7%AC%94%E8%AE%B0/1.htm">Golang编程笔记</a><a class="tag" taget="_blank" href="/search/Golang%E5%BC%80%E5%8F%91%E5%AE%9E%E6%88%98/1.htm">Golang开发实战</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a> <div>Golang动态路由实现:灵活处理URL路径关键词:Golang动态路由、URL路径处理、参数化路由、通配符匹配、路由算法、HTTP框架、RESTful设计摘要:本文深入探讨Golang中动态路由的实现原理与实践方法,从基础概念到复杂场景逐步解析。通过对比标准库与第三方框架的路由机制,详细讲解参数捕获、通配符匹配、正则表达式路由等核心技术。结合具体代码示例演示如何构建高性能路由系统,涵盖路由匹配算</div> </li> <li><a href="/article/1939065654271340544.htm" title="力扣第10题-正则表达式匹配" target="_blank">力扣第10题-正则表达式匹配</a> <span class="text-muted">清风序来</span> <a class="tag" taget="_blank" href="/search/%E5%8A%9B%E6%89%A3%E7%AE%97%E6%B3%95%28python%29/1.htm">力扣算法(python)</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</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/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>力扣链接:10.正则表达式匹配-力扣(LeetCode)给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.'匹配任意单个字符'*'匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示例1:输入:s="aa",p="a"输出:false解释:"a"无法匹配"aa"整个字符串。示例2:输入:s="aa",p="a*"输出:true解</div> </li> <li><a href="/article/1939038544462934016.htm" title="正则表达式半匹配Markdown中的图片/链接格式" target="_blank">正则表达式半匹配Markdown中的图片/链接格式</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%2F%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/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><a class="tag" taget="_blank" href="/search/Markdown/1.htm">Markdown</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a> <div>使用正则表达式匹配Markdown中的图片格式,判断文本是否是图片/链接的开头(不完整):判断文本结尾是否符合Markdown中图片的格式要求Markdown中图片的格式:![图片描述](图片链接)正则表达式:.*\!(\[([^[\]]*(\](\([^)]*)?)?)?)?$defis_incomplete_image_markdown(s):"""检查chunk是否是图片的部分:params</div> </li> <li><a href="/article/1939028961652699136.htm" title="Java-Matcher类" target="_blank">Java-Matcher类</a> <span class="text-muted">Lowjin_</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>Matcher类是Java正则表达式API的核心组件之一(位于java.util.regex包),用于执行复杂的字符串匹配操作。它与Pattern类配合使用,提供查找、替换、分组提取等功能。1.Matcher类的作用对输入字符串执行匹配操作(查找、替换等)支持分组提取(通过()捕获的子表达式)提供位置信息(匹配的起始和结束索引)支持多次匹配和重置2.创建Matcher对象Matcher对象必须通过</div> </li> <li><a href="/article/1939028960969027584.htm" title="Java-Scanner类" target="_blank">Java-Scanner类</a> <span class="text-muted">Lowjin_</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>Scanner是Java中一个实用的文本扫描工具类(位于java.util包),主要用于从输入流(如键盘、文件或字符串)中解析基本数据类型和字符串。它通过正则表达式将输入分解为标记(tokens),并提供了多种方法来读取和转换这些标记。1.Scanner的核心功能功能说明读取输入从键盘、文件、字符串等来源读取数据。按类型解析自动将输入的文本转换为int、double、String等类型。分隔符控制</div> </li> <li><a href="/article/1938948762202337280.htm" title="Python 常用正则表达式大全" target="_blank">Python 常用正则表达式大全</a> <span class="text-muted">朱公子的Note</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>你是否在写Python爬虫时,总是卡在“正则提取”这一步?明明页面源码已经拿到,却怎么也匹配不到目标数据……不是提取失败,就是提取不全,搞得调试半天还抓不到核心字段?别急!今天我们就来一次**“正则一网打尽”**,专为爬虫而生的表达式宝典,让你写起爬虫来如虎添翼!在当下数据驱动时代,网络数据是企业的“金矿”,而Python爬虫则是挖掘这金矿的“利器”!从电商价格到社交媒体评论,爬虫技术让数据采集变</div> </li> <li><a href="/article/1938932496125194240.htm" title="python正则匹配11个数字_python正则表达式re.match()匹配多个字符方法的实现" target="_blank">python正则匹配11个数字_python正则表达式re.match()匹配多个字符方法的实现</a> <span class="text-muted">小馬锅</span> <a class="tag" taget="_blank" href="/search/python%E6%AD%A3%E5%88%99%E5%8C%B9%E9%85%8D11%E4%B8%AA%E6%95%B0%E5%AD%97/1.htm">python正则匹配11个数字</a> <div>1.*表示匹配任意多个字符\d*表示匹配任意多个数字字符importretext="123h1elloworld"text1="123Helloworld456"text2="helloworld"res=re.match("\d*",text)res1=re.match("\d*",text1)res2=re.match("\d*",text2)print(res.group())print(r</div> </li> <li><a href="/article/1938920522272272384.htm" title="【微信小程序】富文本rich-text的图片预览效果的几种方法" target="_blank">【微信小程序】富文本rich-text的图片预览效果的几种方法</a> <span class="text-muted">Lana学习中</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a> <div>前言使用原生小程序开发,实现在富文本rich-text中的图片预览效果的几种方法对比。update:因为方案3wxparser后续没有再维护,解析微信公众号文章时会出现排版错误的问题。作为插件也很难二次开发。换成mp-html了1.正则+wx.previewImage(有明显不足)一个不需要用额外组件或插件的方法:思路:使用正则把图片的url进行剖离出来,push进一个数组中,点击富文本组件,运行</div> </li> <li><a href="/article/1938899590182924288.htm" title="C++正则表达式语法" target="_blank">C++正则表达式语法</a> <span class="text-muted">Coding小公仔</span> <a class="tag" taget="_blank" href="/search/c%2Fc%2B%2B/1.htm">c/c++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在C++中,正则表达式是处理文本模式匹配和字符串操作的强大工具。C++11及以后的标准库提供了头文件,支持正则表达式的使用。下面是C++正则表达式的核心语法规则和用法:一、基本正则表达式语法1.普通字符直接匹配自身,例如:a匹配字符a。2.元字符(需转义)具有特殊含义的字符,需用反斜杠\转义(在C++字符串中需用双反斜杠\\)。.:匹配除换行符外的任意字符。^:匹配字符串的开头。$:匹配字符串的结</div> </li> <li><a href="/article/1938843730811351040.htm" title="Shell 编程之正则表达式与文本处理器" target="_blank">Shell 编程之正则表达式与文本处理器</a> <span class="text-muted"></span> <div>目录一:正则表达式二:基础正则表达式1.基础正则表达式示例(1)查找特定字符(2)利用中括号“[]”来查找集合字符(3)查找行首“^”与行尾字符“$”(4)查找任意一个字符“.”与重复字符“*”(5)查找连续字符范围“{}”2.元字符总结3.扩展正则表达式二:文本处理器1.sed工具(1)输出符合条件的文本(p表示正常输出)(2)删除符合条件的文本(d)(3)替换符合条件的文本(4)迁移符合条件的</div> </li> <li><a href="/article/1938843731260141568.htm" title="Nginx 核心功能" target="_blank">Nginx 核心功能</a> <span class="text-muted">?ccc?</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</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/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>目录一:正向代理1:编译安装Nginx(1)安装支持软件(2)创建运行用户、组和日志目录(3)编译安装Nginx(4)添加Nginx系统服务2:配置正向代理二:反向代理1:配置nginx七层代理2:配置nginx四层代理三:Nginx缓存1:缓存功能的核心原理和缓存类型2:代理缓存功能设置四:Nginxrewrite和正则一:正向代理正向代理(ForwardProxy)是一种位于客户端和原始服务器</div> </li> <li><a href="/article/1938727633483264000.htm" title="Python编程核心技能提升指南:从第2版到第3版" target="_blank">Python编程核心技能提升指南:从第2版到第3版</a> <span class="text-muted">月末刀戈</span> <div>本文还有配套的精品资源,点击获取简介:《Python核心编程中文版》详细介绍了Python的基础和高级编程主题,适合不同层次的学习者。覆盖了正则表达式的使用、网络编程基础、互联网客户端协议应用、多线程编程技巧,以及GUI编程等核心模块。本书通过丰富的实例和详细的解析,帮助读者掌握文本处理、网络通信、并发任务处理和桌面应用开发的关键技能,为深入学习和专业实践提供全面支持。1.Python编程基础1.</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>