正则

【SICP练习】2 练习1.6

こ雲淡風輕ζ 提交于 2021-02-06 07:47:19
 练习 1.6 这道题通过由一个新版本的 if 来引出,主要讨论的还是应用序和正则序的问题。我看到“将 if 提供为一种特殊形式”时还满头雾水,并不太清楚什么特殊形式。当再返回看 if 的语法时才发现,这在第 12 页 if 的一般表达式下面一段。如果 <predicate> 得到真值,解释器就去求值 <consequent> 并返回其值。注意,在此处已经返回其值了,并没有进行后续运算。 而通过 cond 写出来的常规过程的 if ,在解释器采用应用序求值的情况下,如果第一次运算 good-enough? 时为真,则直接返回了 guess 。 原文中的求平方根的程序: (define (new-if predicate then-clauseelse-clause) (cond(predicate then-clause) (elseelse-clause))) (define (sqrt-iter guess x) (new-if(good-enough? guess x) guess (sqrt-iter (improve guess x) x))) (define(sqrt-iter guess x) (if(good-enough? guess x) guess (sqrt-iter (improve guess x) x))) 于是博主进行了如下测试: (sqrt

正则表达式-验证

吃可爱长大的小学妹 提交于 2020-05-05 12:09:16
验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 验证非零的正整数:^\+?[1-9][0-9]*$ 验证非零的负整数:^\-[1-9][0-9]*$ 验证非负整数(正整数 + 0) ^\d+$ 验证非正整数(负整数 + 0) ^((-\d+)|(0+))$ 验证长度为3的字符:^.{3}$ 验证由26个英文字母组成的字符串:^[A-Za-z]+$ 验证由26个大写英文字母组成的字符串:^[A-Z]+$ 验证由26个小写英文字母组成的字符串:^[a-z]+$ 验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 验证由数字、26个英文字母或者下划线组成的字符串:^\w+$ 验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。 验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+ 验证汉字:^[\u4e00-\u9fa5],{0,}$ 验证Email地址:^\w+[-+.]\w+)*@\w+

正则

佐手、 提交于 2020-04-07 11:52:10
参考: https://www.runoob.com/regexp/regexp-metachar.html * 0次或多次。等于{0,} + 1次或多次。等于{1,} ? 0次或1次。等于{0,1}。非贪婪匹配模式:跟在其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面,最少的去匹配,默认的贪婪模式则尽可能多的匹配所搜索的字符串。如,字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。 \w 匹配字母、数字、下划线。等于[A-Za-z0-9_] \W 匹配非字母、数字、下划线。等于[^A-Za-z0-9_] \b 匹配单词的首尾。如, 'er\b' 匹配"never" 中的 'er' \B 匹配单词的中间。如,'er\B' 匹配 "verb" 中的 'er' \d 匹配一个数字字符。等于[0-9] \D 匹配一个非数字字符。等于[^0-9] \s 匹配任何空白字符 \S 匹配任何非空白字符 \n 换行符 \r 回车符 来源: https://www.cnblogs.com/lidowson/p/12652256.html

25 -2 正则爬虫例子

流过昼夜 提交于 2020-04-06 22:00:04
一、导入库 import re from urllib.request import urlopen # 内置的包 来获取网页的源代码 字符串 urlopen 来获取网页的源代码 字符串 res = urlopen('https://www.cnblogs.com/zhuangdd/p/12644081.html') print(res.read().decode('utf-8')) —————————————————————————————— <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="referrer" content="origin" /> <meta property="og:description" content="帮助学习的工具 http://tool.chinaz.com/regex/ 字符组 []在一个字符的位置上能出现的内容[1bc] 是一个范围[0-9][A-Z][a-z] 匹配三个字符[abc0-9]" /> <meta http-equiv="Cache-Control" content="no

正则-- | 匹配分组

泄露秘密 提交于 2020-04-06 07:02:57
# ### 正则表达式 import re """ # 1.正常分组 () 1) 正常情况下用()圆括号进行分组 可以用\1 反向引用第一个圆括号匹配的内容。 2) (?:正则表达式) 表示取消优先显示的功能 (正则表达式) 代表分组 findall 把所有分组的内容显示到列表里 (?:正则表达式) 代表分组 findall 把所有分组的内容不显示到列表里 """ print(re.findall('.*?_good','wusir_good alex_good 神秘男孩_good')) #['wusir_good', ' alex_good', ' 神秘男孩_good'] print(re.findall('(.*?)_good','wusir_good alex_good 神秘男孩_good')) #['wusir', ' alex', ' secret男'] print(re.findall('(?:.*?)_good','wusir_good alex_good 神秘男孩_good')) # | 代表或 # 既想匹配abc 还要匹配abcd lst = re.findall("abc|abcd","abc234abcd234") print(lst) # 有缺陷,不能够都匹配到 #任意 把字符串长的写在前面,字符串短的写在后面 lst = re.findall("abcd

单个字符的匹配规则(正则表达式和re模块)

你离开我真会死。 提交于 2020-04-05 23:44:24
什么是正则表达式: 个人对其的理解:按照一定规则,从某个字符串中匹配出想要的数据。 标准的解释:正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 -------百度百科 正则表达式常用的匹配规则: 匹配某个字符串: text = "hello" retext = re.match("he",text) print(retext.group()) 可以在 text 匹配出 he。 1.只可以顺着匹配,即若开头不是 he,会报错。 2. .group()将匹配到的类型转换成可以读文本。 点(.)匹配任意的字符: text = "+hello" ret = re.match(".",text) print(ret.group()) 匹配出 + 。 \d:匹配任意的数字字符(0-9) text = "0+35" ret = re.match('\d',text) print(ret.group()) \D:匹配任意的非数字字符 text = "+" ret = re.match('\D',text) print(ret.group()) \s:匹配空白字符(\t,\r,\n) text = " \nab " ret = re

ML_6机器学习重要概念补充

老子叫甜甜 提交于 2020-04-05 17:14:40
学习目标 sklearn中的Pipeline 偏差与方差 模型正则化之L1正则、L2正则 一、sklearn中的Pipeline 研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归(Polynomial Regression)。多项式回归是线性回归模型的一种,其回归函数关于回归系数是线性的。其中自变量x和因变量y之间的关系被建模为n次多项式。 如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。在一元回归分析中,如果变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。 由于任一函数都可以用多项式逼近,因此多项式回归有着广泛应用。 多项式回归的思路是:添加一个特征,即对于X中的每个数据进行平方。 import numpy as np import matplotlib.pyplot as plt x = np.random.uniform(-3, 3, size=100) X = x.reshape(-1, 1) y = 0.5 + x**2 + x + 2 + np.random.normal(0, 1, size=100) plt.scatter(x, y) plt.show() from sklearn.linear_model import LinearRegression lin

Jmeter-正则提取器

老子叫甜甜 提交于 2020-04-02 23:32:51
后置处理器--提取器 常用的提取器: a.正则提取器 适用于所有返回的格式 b.json提取器 只适用于返回的是json格式的数据 c.边界值提取器 适用于所有返回的格式 d.Xpath提取器 只适用于返回的是html格式或者xml格式的数据 作用:一般做接口测试时候,尤其碰到某个接口需要用到上一个接口的数据,那我们就需要用到提取器来提取我们需要的数据,然后为下一个接口所用,其实就是在动态关联的时候需要用到。 怎么使用提取器: a.首先一定要搞清楚要提取的内容在哪里?响应头,响应body提取数据 b.如果是从响应body中提取数据,那么要搞清楚返回的是什么格式数据的 对于不同格式的返回数据,采用不同的提取器来实现数据的提取。 以提取上图这个字段值为例 1、添加-->后置处理器-->正则表达式提取器 要检查的响应字段: 从哪里提取数据 引用名称:此处起个变量名,在HTTP等请求中,引用此数据,需要用到的名称 正则表达式: 用于将需要的数据提取出来, "key":"(.*?)",提取出左边是"key":",右边是",的数据,提取出来的数据保存到变量中 模板:表示使用提取到的第几个值, $1$:表示取第1个 $2$:表示取第二个 以此类推:$n$:表示取第n个 匹配数字(0代表随机): 0 代表随机取值,1 代表全部取值 缺省值:如果正则表达式没有搜找到值,则使用此缺省值 2、添加--

正则替换标签内的字符串

自古美人都是妖i 提交于 2020-04-02 05:57:56
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> .dd{ color:aquamarine; font-size: 20px; } </style> </head> <body> <div class="dd">★</div> <div class="dd">✩</div> </body> </html> <script src="lib/js/jquery-3.1.1.min.js"></script> <script> //高亮关键字 text =>内容 words:关键词 tag 被包裹的标签 console.log(highLightKeywords('这是对的吗','这是的啊')); console.log(highLightKeyw('这是对的吗','这是')); console.log(highlight('这是对的吗','这是')); //匹配每一个关键字字符 function highLightKeywords(text, words, tag) { tag = tag || 'span';// 默认的标签,如果没有指定,使用span var i, len = words.length, re; for (i = 0; i < len; i