正则

第二十二天学习:正则

天涯浪子 提交于 2020-02-06 07:41:21
re模块是python处理正则表达式的一个模块,通过re模块的方法,把正则表达式pattern编译成正则对象,以便使用正则对象的方法,可以提高代码的执行效率 compile( rule [,flag] ) 将正则规则编译成一个Pattern对象,以供接下来使用。 第一个参数是规则式,第二个参数是规则选项 • re.I(全拼:IGNORECASE): 忽略大小写(括号内是完整写法,下同) • re.M(全拼:MULTILINE): 多行模式,改变'^'和'$'的行为(参见上图) • re.S(全拼:DOTALL): 点任意匹配模式,改变'.'的行为 • re.L(全拼:LOCALE): 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定 • re.U(全拼:UNICODE): 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性 • re.X(全拼:VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。 多个选项之间用 ’|’(位或)连接起来 import re reg = re.compile(r'abc.*') print(reg) print(type(reg)) r表示raw的简写。意思是原生字符,也就是说这个字符串中间的特殊字符不用转义 比如你要表示‘\n’,可以这样:r'

复习&正则&re模块

 ̄綄美尐妖づ 提交于 2020-02-05 13:04:59
  正则   正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 re模块   1.Re模块简介 re模块是python中处理正则表达式的一个模块,通过re模块的方法,把正则表达式pattern编译成正则对象,以便使用正则对象的方法 效率问题: import re import timeit print(timeit.timeit(setup='''import re; reg = re.compile('<(?P<tagname>\w*)>.*</(?P=tagname)>')''', stmt='''reg.match('<h1>xxx</h1>')''', number=1000000)) print(timeit.timeit(setup='''import re''', stmt='''re.match('<(?P<tagname>\w*)>.*</(?P=tagname)>', '<h1>xxx</h1>')''', number=1000000)) reg = re.compile(‘<(?P<tagname>\w*)>.*</(?P=tagname)>') reg.match('<h1>xxx</h1>') re.match('<

C++之正则使用方法

十年热恋 提交于 2020-02-04 12:20:07
这里总结一下c++标准库中正则类的相关使用方法。 # include <string> # include <regex> using namespace std ; //入参用&,指向同一个字符串,否则相同字符串会被拷贝后传入函数 string rm_surplus_spaces ( string & s ) { regex r ( "\\s+" ) ; string new_s = regex_replace ( s , r , " " ) ; return new_s ; } //基于正则,做全局替换的函数,主要是将中文的符号转为英文 string replace_all ( string & s , const string & old_value , const string & new_value ) { regex re ( old_value ) ; string ss = regex_replace ( s , re , new_value ) ; return ss ; } //regex_search的例子 void test_regex_search ( string & test_str , string & pattern ) { regex r ( pattern ) ; //当定义it时,sregex_iterator的构造函数调用regex

正则化

 ̄綄美尐妖づ 提交于 2020-02-03 01:45:31
文章来源 本文是作者摘抄 且行且安~ 的文章, 当时由于不懂w变化,故留用于以后随时查看,【侵删】 目录 一、Why & What 正则化 1 概念 2、先讨论几个问题: 二、一般正则项 三、深入理解 一、Why & What 正则化 我们总会在各种地方遇到正则化这个看起来很难理解的名词,其实它并没有那么高冷,是很好理解的 首先,从使用正则化解决了一个什么问题的角度来看:正则化是为了防止过拟合, 进而增强泛化能力。用白话文转义,泛化误差(generalization error)= 测试误差(test error),其实就是使用训练数据训练的模型在测试集上的表现(或说性能 performance)好不好 过拟合 如上图,红色这条“想象力”过于丰富上下横跳的曲线就是过拟合情形。结合上图和正则化的英文 Regularizaiton-Regular-Regularize,直译应该是:规则化(加个“化”字变动词,自豪一下中文还是强)。什么是规则?你妈喊你6点前回家吃饭,这就是规则,一个限制。同理,在这里,规则化就是说给需要训练的目标函数加上一些规则(限制),让他们不要自我膨胀。正则化,看起来,挺不好理解的,追其根源,还是“正则”这两字在中文中实在没有一个直观的对应,如果能翻译成规则化,更好理解。但我们一定要明白,搞学术,概念名词的准确是十分重要,对于一个重要唯一确定的概念

系统学习javaweb重点难点2--.JavaScript中的正则对象简述和正则对象使用注意事项。

限于喜欢 提交于 2020-02-02 20:38:47
注意:只是简述,对正则对象的了解目前还不是很深刻,日后详细了解了再来修改。 正文: 正则对象 首先,我们要了解一下什么是正则对象: 正则表达式,又称规则表达式。(英语:Regular Expression ,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。 正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 1 、RegExp对象的创建方式 RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具。 创建方式: var reg = new RegExp(“表达式”); (开发中基本不用) var reg (变量名) = /^表达式$/ 直接量(开发中常用) 直接量中存在边界,即^代表开始,&代表结束 所谓直接量(literal),就是程序中直接使用的数据值。 直接量方式的正则是对象,不是字符串,不要用引号。 2 、test方法 注意是test 而不是text 正则对象.test(string); 用来检验字符串是否匹配正则。 全部字符匹配返回true,有字符不匹配返回false 3、正则对象使用注意事项。 直接量方式,如果一个字符不符合正则要求,就返回 false ,只有全部满足,才会返回 true 。 例如: <script type= "text/javascript" > var reg=/^xjmwan$/; //0-多个空格

机器学习——正规方程,正则化

Deadly 提交于 2020-02-01 21:48:14
一、正规方程(Normal equation): 对于某些线性回归问题,正规方程方法很好解决; \(\frac{\partial}{\partial\theta_j}J(\theta_j)=0\) ,假设我们的训练集特征矩阵为 X(包含了 x0)并且我们的训练集结果为向量 y,则利用正规方程解出向量 \(\theta=(X^TX)^{-1}X^Ty\) 注意: \((X^TX)^{-1}\) 如果特征数量n较大,运算代价就很大,一般小于10000即可;只适用于线性模型; 二、正则化: 解决过拟合问题: 1.丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如 PCA ) 2.正则化。 保留所有的特征,但是减少参数的大小( magnitude )。 如果我们的模型是: \(h_\theta(x)=\theta_0x_0^0+\theta_1x_1^1+...+\theta_nx_n^n\) 正是这些高次项导致了过拟合的产生,所以去减小他们系数的大小就好了。修改代价函数,给他们的系数设置惩罚; 修改后的代价函数: \(J(\theta)=\frac{1}{2m}[\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^n\theta_j^2]\) 其中 \(\lambda\

编译器-有穷自动机

孤者浪人 提交于 2020-02-01 10:24:10
决定性有穷自动机和非决定性有穷自动机的区别,每一步导向的状态是否是确定的,是否有 伊普西龙 (自由转换步) 他们都是识别正则语法的,DFA执行更快 实现步骤 词法解析 正则 NFA DFA 表驱动的DFA实现 正则到NFA实现的例子 A 表示0-无穷个的A相连 A+表示AA AB表示A语言后接着B语言 A+B表示A或者B语言都行 伊普西龙代表不需要输入,直接可以转换状态 a代表输入值为a (1+0)*1 eg 1 1111 10101001 0101001 NFA到DFA 把所有 伊普西龙(STATE)即一个state通过伊普西龙到达的所有状态归结为一个状态 ,再进行联系 来源: CSDN 作者: qq_38105524 链接: https://blog.csdn.net/qq_38105524/article/details/104130216

正则匹配

杀马特。学长 韩版系。学妹 提交于 2020-02-01 01:26:01
需求: 1) 匹配文章中各种各样的价格数字, 300万,30万人民币,300万美元,三百万美元,‘300-350万’ 2) 不匹配不是价格的数字,20万人次, 20万台, 350亿 1.基础知识 ptn = re.compile(r'[ .·\-》《]') sr = '安德烈·特诺夫斯基' ptn.sub('', sr) '安德烈特诺夫斯基' ptn.sub('|', sr) '安德烈|特诺夫斯基' 来源: CSDN 作者: qq_40544581 链接: https://blog.csdn.net/qq_40544581/article/details/103704823

js的6个正则方法

≡放荡痞女 提交于 2020-01-31 12:08:59
js中有两个类可以让正则发挥作用 创建 var re = /ab+c/ 方式一:正则表达字面量,这种直接是常量的表示用法可以让js解析器提高性能 var re = new RegExp('ab+c') 方式二:构造函数,这种方式可以在runtime的时候动态确定正则是什么,更加灵活 常用特殊字符 匹配量的:* + ? {n} {n,} {n,m} . 匹配位置的:^ $ 匹配并且需要支持分组的时候需要括号来包裹:(匹配的模式) 匹配条件的:| 匹配集合的:[] 匹配非集合的:[^] 例子 var myRe = / d ( b + ) d / g ; myRe . exec ( 'cdbbdbsdbdbz' ) // ["dbbd", "bb", index: 1, input: "cdbbdbsdbdbz"] myRe . exec ( 'cdbbdbsdbdbz' ) // ["dbd", "b", index: 7, input: "cdbbdbsdbdbz"] myRe . exec ( 'cdbbdbsdbdbz' ) // null 注意对于每个正则对象的exec每次调用都只返回一个匹配,如果需要拿到全部匹配就需要while循环获取,循环结束标志是返回值为null 'cdbbdbsdbdbz'.match(/d(b+)d/g) // ["dbbd", "dbd"]

MariaDB 使用正则匹配查询

你。 提交于 2020-01-30 02:54:20
正则表达式通常被用来检索或替换那些符合某个模式的文本内容,根据指定的匹配模式匹配文本中符合要求的特殊字符串.例如从一个文本文件中提取电话号码,查找一篇文章中重复的单词或者替换用户输入的某些敏感词语等,这些地方都可以使用正则表达式,正则表达式强大且灵活,可以应用于非常复杂的查询,MySQL中使用 REGEXP 关键字指定正则表达式的字符匹配模式,先来看一下下表常用的正则规则吧: 通配符 说明信息 匹配例子 ^ 匹配文本的开头字符 '^b'匹配开头是b的字符串 $ 匹配文本的结束字符 'st$'匹配结尾是st的字符 . 匹配任意单个字符 'b.t'匹配任意b和t之间有1个字符 * 匹配0个或多个任意字符 'f*n'匹配字符n前面任意个字符f + 匹配前面字符1次或多次 'ba+'匹配以b开头后面紧跟至少1个a [^] 匹配不在括号中的任何字符 '[^ab]'匹配开头不包括,a或b字幕的 匹配包含指定字符串的文本 'aaa'匹配字符串aaa [字符集合] 匹配字符集合中任意1个字符 '[xz]'匹配x或者z 字符串{n,} 匹配前面字符至少出现n次 'b{2}'匹配2个或多个b 字符串{n,m} 匹配前面字符至少出现n次不大于m次 'b{2,3}'匹配最少2个,最多3个b 以上就是MariaDB所支持的所有匹配通配符,这里内容虽然较少,但是还是要独立出来一个章节