正则表达式

正则表达式匹配各种特殊字符 写个可以匹配一下各种特殊字符的正则表达式12这个匹配所有键盘上可见的非字母和数字的符号12345 这个是输入框防止特殊字符勿输入验证,包括键盘上所有特殊字符的英文和中文状态。需要者可以根据自身需求而定!谢谢!正在上传…重新上传取消微信扫码,回复 “ 666 ” 领取正则相关资料!匹配非空 非字母 非数字 即可1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零 阅读详情

##正则表达式(Regular Expression)

课堂主题

​ 1)正则的创建

​ 2)正则的匹配方法

​ 3)元字符

​ 4)字符集合

​ 5)边界

​ 6)分组

7)反向引用

​ 8)数量词汇

​ 9)匹配模式


课堂目标

  • 理解正则中的基础知识
  • 理解正则中的各种概念
  • 会使用正则查找替换字符
  • 能使用正则在实际中运用

知识点

###字符串操作

  • 查找字符串中的数字;
  • 正则如何如实现

正则的创建

  • 字面量创建
  • 通过构造函数

正则的匹配方法

字符串方法

  • match
  • search
  • replace
  • split

正则对象下的方法

  • test
  • exec

元字符

  • 正则表达式中有特殊含义的非字母字符;

​ 字符类别(Character Classes)

  • .
    • 匹配行结束符(\n \r \u2028 或 \u2029)以外的任意单个字符
    • 在 字符集合(Character Sets) 中,. 将失去其特殊含义,表示的是原始值
  • \
    • 转义符,它有两层含义
      • 表示下一个具有特殊含义的字符为字面值
        • 表示下一个字符具有特殊含义(转义后的结果是元字符内约定的)
  • \d 匹配任意一个阿拉伯数字的字符
  • \D 匹配任意一个非阿拉伯数字的字符
  • \w 匹配任意一个(字母、数字、下划线)的字符
  • \W 匹配任意一个非(字母、数字、下划线)的字符
  • \s 匹配一个空白符,包括空格、制表符、换页符、换行符和其他 Unicode 空格
  • \S 匹配一个非空白符
  • \t 匹配一个水平制表符(tab)
  • \r 匹配一个回车符(carriage return)
  • \n 匹配一个换行符(linefeed)
  • \v 匹配一个垂直制表符(vertical tab)
  • \f 匹配一个换页符(form-feed)

字符集合

[xyz]

  • 一个字符集合,也叫字符组。匹配集合中的任意一个字符。你可以使用连字符’-'指定一个范围
  • [xyz] 是一个反义或补充字符集,也叫反义字符组。也就是说,它匹配任意不在括号内的字符。你也可以通过使用连字符 ‘-’ 指定一个范围内的字符

边界

  • ^
    • 匹配输入开始。如果多行(multiline)标志被设为 true,该字符也会匹配一个断行(line break)符后的开始处
  • $
    • 匹配输入结尾。如果多行(multiline)标志被设为 true,该字符也会匹配一个断行(line break)符的前的结尾处
  • \b
    • 匹配一个零宽单词边界(zero-width word boundary)
  • \B
    • 匹配一个非零宽单词边界(zero-width word boundary)

###分组

  • (子项)

    • 可以使用 () 对表达式进行分组,类似数学中分组,也称为子项
    • 索引分组
    • 命名分组
      • (?…)
      • groups属性
    • 捕获匹配
      • 具有捕获(capturing)特性,即会把匹配结果保存到(子项结果)中
      • (x)
    • 非捕获匹配
      • 不具有捕获(capturing)特性,即不会把匹配结果保存到(子项结果)中
      • (?:x)
    • 零宽断言/预查(Assertions)
      • 用于指定查找在某些内容(但并不包括这些内容)之前或之后的内容
      • 正向零宽断言/预查
        • 肯定
          • (?=pattern)
        • 否定
          • (?!pattern)
      • 负向零宽断言/预查(注意:ES2018新增)
        • 肯定
          • (?<=pattern)
        • 否定
          • (?<!patten)
    • 捕获与零宽断言的区别
      • 捕获:匹配的内容出现在结果中但不出现在子项结果中
      • 零宽断言:完全不会出现在结果

    反向引用

    • \n
      • 这里的 n 表示的是一个变量,值为一个数字,指向正则表达式中第 n 个括号(从左开始数)中匹配的子字符串

    数量词汇

    • x{n}
      • n 是一个正整数。前面的模式 x 连续出现 n 次时匹配
    • x{n,m}
      • n 和 m 为正整数。前面的模式 x 连续出现至少 n 次,至多 m 次时匹配
    • x{n,}
      • n 是一个正整数。前面的模式 x 连续出现至少 n 次时匹配
    • x*
      • 匹配前面的模式 x 0 或多次
    • x+
      • 匹配前面的模式 x 1 或多次。等价于 {1,}
    • x?
      • 匹配前面的模式 x 0 或 1 次
    • x|y
      • 匹配 x 或 y

    匹配模式

    • g

      • global,全局模式:找到所有匹配,而不是在第一个匹配后停止
    • i

      • ignore,忽略大小写模式:匹配不区分大小写
    • m

      • multiple,多行模式:将开始和结束字符(^和$)视为在多行上工作,而不只是匹配整个输入字符串的最开始和最末尾处
    • s

      • dotAll / singleline模式:. 可以匹配换行符
    • u

      • unicode,unicode模式:匹配unicode字符集

         console.log(/^.$/.test("\uD842\uDFB7"));
         console.log(/^.$/u.test("\uD842\uDFB7"));
        
    • y

      • sticky,粘性模式:匹配正则中lastIndex属性指定位置的字符,并且如果没有匹配也不尝试从任何后续的索引中进行匹配
  • 正则工具 http://regexper.com

总结

​ 1)正则的创建

​ 2)正则的匹配方法

​ 3)元字符

​ 4)字符集合

​ 5)边界

​ 6)分组

7)反向引用

​ 8)数量词汇

​ 9)匹配模式

正则表达式;["12312","2312"]
字符串里找到对应的数字;
let str = "fdsafd12312dfaf3443fds2312dafd1111";
方式一;
function getNumber(str){
    let arr = [];
    let temp = "";
    for(let i=0;i<str.length;i++){
        // console.log(typeof str[i]);
        if(!isNaN(str[i])){
            // console.log("数字");
            temp += str[i];
        }else{
            // console.log("非数字");
            if(temp!=""){
                arr.push(temp);
                temp = "";
            }
        }
    }
    if(temp!=""){
        arr.push(temp);
    }
    return arr;
}
let res = getNumber(str);
console.log(res);

正则实现;方式二; + 出现1次到多次; \d;数字;\D:非数字;
let reg = /\d+/g;
let arr = str.match(reg);
console.log(arr);

正则创建;
方式一:字面量创建;
let str = "fdsadf12313fdaf";
let a = "ad";
let reg = /a/;
let res = str.match(reg);
console.log(res);

创建方式二 :构造函数创建;
let str = "fdsadf12313fdaf";
let a = "ad";
let reg = new RegExp(a,"g");
let res = str.match(reg);
console.log(res);

正则方法;
1.test 2.exce;
let str = "dfasfd342234fda2342342f";
let reg = /\d+/;
let res = reg.test(str);
console.log(res);
let reg = /\d+/g;
let res = reg.exec(str);
console.log(res);
let res1 = reg.exec(str);
console.log(res1);


字符串方法;
1.split 2.replace; 3.search; 4.match;
1.split
let str = "fdafdafdsfdsafsddarer";
let arr = str.split(/a/);
console.log(arr);

2.replace;
let str = "fdafdaf1dsfdsa2fsdda33rer";
let reg = /\d+/g;
let res = str.replace(reg,"*");
console.log(res);
敏感词过滤;
let str = "据中国教育部数据显示,2007年至2018年,中国出国留学人数由14万增至66.2万,年均增长约14%;而同期的留学归国人数由4万增至51.9万,年均增长近24%。归国热潮下,海归就业的供需市场如何,成为留学人员与国内用人单位的共同关注。";
// 教育部 、 人员;
let reg = /教育部|人员/g;
// let res = str.replace(reg,"*");
let res = str.replace(reg,function(arg){
    return "*".repeat(arg.length);
})
console.log(res);

3.match;
let str = "fdsa1231dfaf232fda";
let reg = /\d+/g;
let res =  str.match(reg);
console.log(res);

4.search:匹配第一个符合结果的索引值位置;如果找不到 就返还-1;
忽略全部匹配;
let str = "fdsfda323fdaf1232";
let reg = /\d+/;
let res = str.search(reg);
console.log(res);

元字符:正则中有特殊含义的非字母字符;
. *(0次或者多次) + ? $ ^ | \ () [] {};

.  匹配除了 \n \r \u2028 或 \u2029  以外的所有字符;
let str = `<div>some<div></div> value..</div>`;
let reg = /<div>.*<\/div>/g;
// “\” 转义:将特殊含义转换成字面量含义;
  let res =   reg.test(str);
  console.log(res);

^开头  $ 结尾; \w:数字 字母 下划线; 
let str = "cde__111fg";
let reg = /^c\w+g$/g;
let res = reg.test(str);
console.log(res);

[]:字符集合;
let str = "dffdabfds123fdabfdb435afdsa";
let reg = /a|b/g;
let reg = /[^ab]/g;
let res = str.replace(reg,"*");
console.log(res);
let reg = /\d+/g;
let reg = /[0-9]+/g;
let res = str.replace(reg,"*");
console.log(res);
let reg = /[0-20]+/g;
let res = str.replace(reg,"*");
console.log(res);
let str = "this knife is 5cM"; 
let reg = /[kKCc]?[Mm]/;
let res = str.replace(reg,"米");
console.log(res);

. ===> [^\r\n];  \d===>[0-9];
\w ===>[a-zA-Z_0-9];

边界符:\b  : 非 \w 都被称为边界;
let str = "is this a book?";
let reg = /\bis\b/g;
let reg = new RegExp("\\bis\\b","g");
let arr =  str.match(reg);
console.log(arr);

():分组;
let str = "abfdssafdsababljljabssfd";
?---{0,1} + --- {1,} * ---{0,}     {2};
let reg = /s{2}/g;
let reg = /(ab){2}/g;  //abb
let res = str.replace(reg,"*");
console.log(res);

let str = "My name is Lilei";
// LiLei替换成李雷;
let reg = /Li(L|l)ei/g;
let res = str.replace(reg,"李雷");
console.log(res);

转换时间格式:2019-10-19  ---->  19/10/2019;
反向引用;
let mytime = "2019-10-19";
let reg = /(\d{4})-(\d{1,2})-(\d{1,2})/g;
let res = mytime.replace(reg,"$3/$2/$1");
// console.log( RegExp.$1 );
console.log(res);

命名分组;?<分组名>  ES2018新增特性;
let str = "$name=zhangsan&age=20";
let reg = /\$(?<str>\w+)/;
let res = str.match(reg);
console.log(res.groups.str);

零宽断言:正向(后面)  负向(前面)  ---》 肯定断言、否定断言 ;
es2018 
正向肯定断言;
let str = "iphone3iphone4iphone11iphoneNumber";
// iphone 换成“苹果”;
let reg = /iphone(?=\d{1,2})/g;
let res = str.replace(reg,"苹果");
console.log(res);
正向否定断言;
let str = "iphone3iphone4iphone11iphoneNumber";
// iphone 换成“苹果”;
let reg = /iphone(?!\d{1,2})/g;
let res = str.replace(reg,"苹果");
console.log(res);

负向肯定断言;
let str = "10px20px30pxipx";
// px-->像素;
let reg =  /(?<=\d{2})px/g;
let res = str.replace(reg,"像素");
console.log(res);
负向否定断言;
let str = "10px20px30pxipx";
// px-->像素;
let reg =  /(?<!\d{2})px/g;
let res = str.replace(reg,"像素");
console.log(res);


匹配模式
g:全局匹配
i:忽略大小写;
let str = "afdafdAdfafd";
let reg = /a/gi;
let res = str.replace(reg,"*");
console.log(res);

m多行模式
let str = `adfsf
dfdsa`;
let reg = /^\w/gm;
let res = str.replace(reg,"*");
console.log(res);

s . 可以匹配换行符
let str = `<div>som
    e value..</div>`;
let reg = /<div>.*<\/div>/gs;
// “\” 转义:将特殊含义转换成字面量含义;
  let res =   reg.test(str);
  console.log(res);

console.log(/^.$/.test("\uD842\uDFB7"));
console.log(/^.$/u.test("\uD842\uDFB7"));


y 粘性模式;
let str = "1234dfafd43243fdsdf";
let reg = /\d+/g;
console.log(reg.exec(str));
console.log(reg.exec(str));

AutoSAR系列讲解 - 资料下载 学习资料下载汇总 阅读详情

相关推荐

使用CubeMX生成的项目在Keil下添加DSP库并包含arm_math头文件后报错的解决办法

问题描述: 最近使用Cube生成工程后,在Keil中使用Manage Runtime Environment即绿色小饼干按钮添加CMSIS的DSP库后编译报错。很有意思的是,STM32论坛上有外国朋友报告的同样的错误,都是30个Errors,5个Warning。 问题分析: 参考国内论坛某帖子(具体想不起来了),认为因该是Cube复制了库后,Keil从原始Packs目录下引用DSP库导致和Cub...

qq_32256951的博客 7001

正则表达式中,表示匹配非数字字符的字符

大写表示“非”,d表示digit数字。非数字就是\D, w表示word,非单词就是\W  元字符 描述 \ 将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。 ...

caojinfei_csdn的博客 9万+

Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现

Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 目录 Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 一、简单介绍 二、Car Racing 2D (2D赛车) 游戏内容与操作 三、相关说明 四、游戏代码框架 五、知识点 六、游戏效果预览 七、实现步骤 八、工程源码地址 九、延伸扩展 一、简单介绍 Unity 游戏实例开发集合,使用简单易懂的方式,讲解常见游戏的开发实现过程,方便

仙魁XAN 7702

1.3 正则表达式【匹配数字】

数字匹配符 \d \d可以配置 0到9的整数,等价于上一节中的 [0-9] 。 测试实例 被匹配字符串 private static final String test1 = "a12adf31d2tt"; 匹配公式1 匹配公式: String expression1 = "\\d"; 匹配结果: 匹配公式2 匹配公式: String expressi...

qq_26462567的博客 3460

深入解析GEM5 McPAT NoC功耗模型:从arbiter电容计算到微架构关联

本文深入解析GEM5 McPAT NoC功耗模型,重点探讨arbiter电容计算与微架构的关联。通过拆解动态功耗公式和四类电容的物理本质,揭示能量与功率的转换关系,并提供参数调试和模型精度优化的实战技巧,帮助开发者更准确地预测和优化NoC功耗。

weixin_29305313的博客 201

从0到1:提示工程架构师搭建Agentic AI系统的全流程实战手册

Agentic AI(自主智能体)是具备自主决策能力的大模型应用感知(Perceive):获取外部环境信息(比如代码仓库、用户输入、数据库数据);记忆(Memory):存储和检索历史信息(比如过去的审计记录、用户偏好);规划(Plan):将复杂任务拆解为可执行的步骤(比如“代码审计”拆成3步);行动(Act):调用工具或API完成具体操作(比如调用Git克隆仓库、调用Safety查漏洞);反馈(Feedback):根据结果调整策略(比如用户说“报告不够详细”,下次增加逻辑漏洞的分析深度)。

AI Agent Harness Engineering 1042

1.5 正则表达式【匹配字母和数字】

字母和数字匹配符 \w \w可以配置 字母和数字,等价于[a-zA-Z0-9] 。 测试实例 被匹配字符串 private static final String test1 = "a12.a,df3.1d-2tt.*"; 匹配公式1 匹配公式 String expression1 = "\\w"; 匹配结果 匹配公式2 匹配公式 String exp...

qq_26462567的博客 3610

openEuler 20.03 LTS面向RK3399移植系列(3)—openEuler 20.03 LTS面向Firefly RK3399的第一个版本(Linux kernel 4.4)

任务动机:完成openEuler面向RK3399开发板的移植。 任务描述:按照固件烧写准备,固件获取,固件打包和烧写的步骤实现openEuler面向RK3399开发板的移植,整理过程和相关命令记录到文档。 1. 制作openEuler的rootfs.img 1.1 开发环境 树莓派--openEuler系统 openEuler 20.03 LTS 的内测版本镜像,下载。 1.2 具体操作 1.2.1 ssh远程连接树莓派 确定树莓派IP ssh连接 1.2.2 制作rootfs.img

火种源码的机器人技术专栏 2369

正则表达式(9):扩展正则表达式

上图中的扩展正则使用了分组符号”( )”,”(com|net)”表示将括号内的内容看做一个整体,而括号内的内容为”com|net”,它表示”com或者net”,所以,”(com|net)$”就表示以com或者net结尾的行。上图中,grep命令使用了”-E”选项,表示grep命令会把”正则表达式”中的符号当成”扩展正则表达式”去理解,而不再使用默认的”基本正则表达式”。5、顶级域名之前必须包含一个”点”,换句话说就是,邮箱必须以”.com”、”.net”、”.org”、”.edu”结尾。

qq_40531442的博客 2171

[工作流节点10] 获取多条数据并循环执行 —— 明道云批处理自动化实战

本文系统介绍了明道云工作流中"获取多条数据+循环执行"的批处理功能。该功能通过筛选数据集合并逐条处理,适用于批量通知、数据更新等场景。文章详细解析了功能配置方法,包括数据筛选、循环设置和异常处理,并提供了合同到期提醒等典型应用案例。同时强调了数据量控制、分批处理、错误处理等优化策略,帮助用户实现高效批量自动化。这一功能组合能将业务从单条处理升级为批量驱动,显著提升工作效率。

每日出拳老爷子的博客 455

Siemens SIMATIC软件二次开发:使用C#进行SIMATIC软件二次开发

通过使用OPC-UA通信协议和S7通信库,可以有效地在C#应用程序中与Siemens SIMATIC软件进行数据交换。OPC-UA提供了一个标准化的平台,而S7通信库则提供了直接访问PLC数据的能力。掌握这两种通信方式,将极大地增强在工业自动化领域的二次开发能力。在Siemens SIMATIC软件中,自定义功能块开发是实现二次开发的关键步骤之一。通过C#,可以创建高度定制化的功能块,以满足特定的控制需求。下面,我们将通过一个示例来展示如何使用C#开发一个自定义功能块。OPC-UA通信。

kkchenjj的博客 1415

Python正则表达式

正则表达式是对字符串提取的一套规则,我们把这个规则用正则里面的特定语法表达出来,去匹配满足这个规则的字符串。正则表达式具有通用型,不仅python里面可以用,其他的语言也一样适用。正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,常用的有都可以用于匹配字符串。

2301_81704383的博客 1322

【32】软考软件设计师——算法题(一):分治法与动态规划深度精讲|下午第4题常考满分攻略

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第32篇,正式开启**模块四:应用技术(下午题)算法大题专项**,聚焦下午第4道高频必考大题核心两大算法:分治法与动态规划。全文超4000字深度拆解两大经典算法的底层核心思想、算法策略识别技巧、递归边界设计、状态转移方程推导,全覆盖代码填空高频考点、时间复杂度分析、经典题型解题套路;配套可直接默写的递归代码模板、DP状态设计范式、真题完整填空案例,彻底解决考生分不清分治与DP、递归边界写错、状态转移推不出、复杂度算不对四大核心痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 637

linux正则表达式,正则表达式分类,元字符,基础正则表达式,扩展正则表达式,正则表达式案例

上文介绍了通配符1,本文介绍、总结和通配符有着诸多共同点的一类符号,即正则表达式(regular expression)。只是通配符的对象是文件、或目录,而后者对象是文本内容。在很多地方都有正则表达式的身影,它的作用是用来匹配指定式样的内容,个人理解为,正则表达式规定了指定式样pattern,能匹配该指定式样的字符或字符串即为内容,内容的来源可以是文件、某个标准输入等,使用正则表达式(regular expression)的目的就是匹配到了该内容。

有人说学习`这个`最好的时间是十年前,有人说最好的时间是现在,众说纷纭... 1821

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

shell 正则表达式详解

什么是正则表达式;为什么使用正则表达式;如何使用正则表达式;基本正则表达式;扩展正则表达式; 包含正则表达式例题。

weixin_48814356的博客 3003

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

linux正则表达式大全,正则表达式,正则表达式语法大全

正则表达式,正则表达式语法大全正则表达式分为两类:基本正则表达式:BRE扩展正则表达式:ERE基本正则表达式的元字符:字符匹配:.: 匹配任意单个字符;[]: 匹配指定范围内的任意单个字符[^]:匹配指定范围外的任意单个字符[:digit:],[:upper:],[:lower:],[:alpha:],[:alnum:],[:space:],[:punct:]匹配次数:用在要指定次数的字符后面,...

weixin_32955259的博客 2878

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

regex 正则表达式

regex 正则表达式 文章目录regex 正则表达式前言元字符abc 等普通字符| 符号两侧的正则均能匹配. 匹配任意一个字符 '\n'除外^ 匹配字符串开头$ 匹配字符串结尾* 匹配重复0次或多次+ 匹配重复1次或多次? 匹配重复0次或1次{N} 匹配重复指定次数{M,N} 匹配重复指定次数范围[abcd] 字符集匹配[^ ...] 字符集不匹配\d 匹配任意数字字符\D 匹配任意非数字字...

weixin_40118971的博客 6475

【正则表达式】{1} ——正则表达式的语法

参考资料:Python网络爬虫与信息提取(北京理工大学慕课) 正则表达式的语法: 正则表达式语法由字符和操作符构成 正则表达式的常用操作符: 操作符 说明 实例 . 表示任何单个字符 [ ] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a-z]表示a到z单个字符 [^ ] 非字符集,对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符 ...

Giyn 4783

正则表达式总结

每次使用到正则表达式的时候都要去翻书或者去网上查,很麻烦,抽出点时间做一个总结,方便以后用到的时候查阅。一、正则表达式的几个特殊符号1、^和$两个特殊的符号‘^’和’$’。他们的作用是分别指出一个字符串的开始和结束。例子如下:"^The":表示所有以"The"开始的字符串("There","The cat"等); "of despair$":表示所以以"of despair"结尾的字符串; "^ab

lmb55的专栏 2269

Shell编程之正则表达式

目录 正则表达式 概述 基础正则表达式 “*”前一个字符匹配 0 次,或任意多次 “.” 匹配除了换行符外任意一个字符 “^”匹配行首,“$”匹配行尾 “[]” 匹配中括号中指定的任意一个字符,只匹配一个字符 “[^]” 匹配除中括号的字符以外的任意一个字符 “\” 转义符 “\{n\}”表示其前面的字符恰好出现 n 次 “\{n,\}”表示其前面的字符出现不小于 n 次 “\{n,m\}”匹配其前面的字符至少出现 n 次,最多出现 m 次 扩展正则表达式 正则表达式综合案例

baidu_41388533的博客 1109
上一篇: git 操作
下一篇: 查找字符串 indexof 使用 ~ 符号
ZhouMin8877
博客等级 码龄9年 4粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值