正则表达式

正则表达式-常用构造子列表

扶醉桌前 提交于 2020-02-29 10:34:27
字符 表示单个字符。例如a ,它将匹配字符串中第一次出现的字符 a ;它也可以匹配第二个 a ,这必须是你告诉正则表达式引擎从第一次匹配的地方开始搜索。 可以使用特殊字符序列代表某些不可显示字符。 构造 匹配 B 字符B \xhh 十六进制值为oxhh的字符 \uhhhh 十六进制值为oxhhhh的Unicode字符 \t 制表符Tab:(‘\u0009’) \r 回车符:(‘\u000D’) \n 换行符:(‘\u000A’) \f 换页符:(‘\u000C’) \e 转义符(Escape):(‘\u001B’) 字符集 字符集是由一对括号[]括起来的字符集合。使用字符集,可以告诉正则表达式引擎仅仅匹配多个字符中的一个。 字符集可以出现在其它字符集中,并且可以包含并集运算符(隐式)和交集运算符 (&&)。 构造 匹配 [abc] a、b或c(等效于a|b|c) [^abc] 除了a、b或c的任何字符(否定) [a-zA-Z] a到z或A到Z的任何字符(范围) [abc[hij]] a、b、c、h、i或j,等效于a|b|c|h|i|j(并集) [a-z&&[hij]] h、i或j(交集) 并集和交集的应用示例如下: [a-c[h-j]] a到c或h到j的任何字符(并) [a-z&&[^hij]] a到z,除了h、i、j(减去),等效于[a-gk-z] [a-z&&[^h-j]]

Jmeter关联

天大地大妈咪最大 提交于 2020-02-29 05:45:50
Jmeter关联 所谓 关联 ,从业务角度讲,即:某些操作步骤与其相邻步骤存在一定的依赖关系,导致某个步骤的输入数据来源于上一步的返回数据,这时就需要“关联”来建立步骤之间的联系。 简单来说,就是:将上一个请求的响应结果作为下一个请求的参数。。。 这里的提取器,都可以作为jmeter中关联的使用。 一、边界提取器 参数:前三个就不做介绍了; (4)匹配数字:-1表示全部,0随机,1第一个,2第二个 (5)缺省值:这个如果没有匹配到,给它定义的一个默认值 这里和lr里的关联函数是差不多的,比如这里要提取hao123, 提取器填写如下: 在请求2里引用:引用使用${变量名},这里为${id},如下图,就已经取到值了。 二、正则表达式提取器 参数: (1)就是变量名。 (2)正则表达式:   ():括起来的部分就是要提取的。    .:匹配任何字符串。   +:一次或多次。   ?:不要太贪婪,在找到第一个匹配项后停止。 (3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值 (4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0 (5)缺省值:如果参数没有取得到值,那默认给一个值让它取。 在请求2里引用:引用使用${变量名},这里为${id},如下图,就已经取到值了。 三

正则表达式Lookaround特性的应用

送分小仙女□ 提交于 2020-02-28 23:04:39
1. 介绍 Lookaround是Perl 5引进的特性,这个特性极大增强了正则表达式的能力,熟练掌握该特性,可以帮助我们运用正则表达式解决更复杂的问题。Lookaround有4种类型,下面的定义取自 Java API : (?=X) X, via zero-width positive lookahead (?!X) X, via zero-width negative lookahead (?<=X) X, via zero-width positive lookbehind (?<!X) X, via zero-width negative lookbehind 两个方向:Lookahead和Lookbehind,两种逻辑:Positive和Negative。目前多数正则表达式引擎至少都支持Lookahead,后面的例子用Java来演示,这4种类型Java都支持。 上面定义中的"Zero-width"是理解Lookaround特性的关键。常用的"^"、"$"、"\b"等Boundary Characters都是"Zero-width Assertions",即不消费字符,但判定当前位置是否满足特定的要求,Lookaround实际也是"Zero-width Assertions"。Boundary Characters是系统预定义的"Zero-width Assertions"

Requests+正则表达式爬取猫眼电影

别来无恙 提交于 2020-02-28 20:05:57
爬取单页内容 利用requests请求目标站点,得到单个网页HTML代码,返回结果 正则表达式分析 根据HTML代码分析得到电影的名称、主演、上映时间、评分、图片链接等信息。 保存至文件 通过文件的形式将结果保存,每一部电影一个结果一行json字符串 开启循环及多进程 对多页内容遍历,开启多进程提高爬取速度。 附上代码: 1 import json 2 from multiprocessing import Pool 3 import requests 4 from requests.exceptions import RequestException 5 import re 6 7 def get_one_page(url): 8 try: 9 response = requests.get(url) 10 if response.status_code == 200: 11 return response.text 12 return None 13 except RequestException: 14 return None 15 16 def parse_one_page(html): 17 pattern = re.compile(r'<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a' 18 +'

PHP正则表达式替换函数preg_replace

冷暖自知 提交于 2020-02-28 20:03:56
preg_replace正则表达式替换函数对于我来说,现在非常喜欢它。不仅能准确、快速的处理字符串,还能让我从新审视正则表达式的重要性。正则表达式语言对于我来说,就像人类听不懂鸟语一样,想懂它却那么难以交流,看来是要好好的学习学习正则表达式语法啦。这里有30分钟 正则表达式入门 教程,多么想和他熟悉熟悉,懂他能给工作带来很大的方便,所以拿下正则表达式是迫在眉睫的事情。 preg_replace — 执行一个正则表达式的搜索和替换 mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) 说明:搜索subject中匹配pattern的部分, 以replacement进行替换。 preg_replace参数补充说明: 1、replacement 可以包含 \\n 形式或 $n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本。n 可以从 0 到 99,其中 \\0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目。 2、对替换模式在一个逆向引用后面紧接着一个数字时(如 \\11),不能使用 \\ 符号来表示逆向引用

正则表达式的用法

北城以北 提交于 2020-02-28 19:15:03
正则表达式在Java的使用 Java中用双反斜杠表示正则中的单反斜杠,所以 \w 必须写成 \\w ,其他同理 使用spilt分割的时候,匹配的字符会“消失”,即作为分割 下面开始介绍Java里面的正则表达式 1.几个简单的知识: 1.\w 小写w 和 大小写字母 数字 下划线 相匹配 (Java编程思想竟然说\w识别单词,害 2.\w+ 识别上述字符以及后面的一串满足条件的 3.\W 识别其他字符 4.\W+ 识别其他字符以及后面的其他字符 5.+号如果作为正号需要加\\ 作为后缀不需要 6.a\w+表示以a开头的且后面 必须 跟着上述字符的,比如"a(空格符)" 是不符 合的 \w \W public class Spilt { public static void main ( String [ ] args ) { /* \w \w+ \W \W+*/ /* * 1.\w 小写w 和 大小写字母 数字 下划线 相匹配 (Java编程思想竟然说\w识别单词,害 * 2.\w+ 识别上述字符以及后面的一串满足条件的 * 3.\W 识别其他字符 * 4.\W+ 识别其他字符以及后面的其他字符 * */ String s1 = "3ap1le pe5cah" ; String s2 = "ap_ple _peach or3nge_" ; split ( s1 , "\\w+" )

正则表达式笔记

自古美人都是妖i 提交于 2020-02-28 18:55:13
正则表达式在处理文本信息和字符串时特别方便,使用好正则表达式能够很大程度上提升对文本信息和字符串的处理能力。 正则表达式常用操作符为: 经典正则表达式实例: 正则表达式 说明 ^[A-Za-z]+$ 由26个英文字母组成的字符串 ^[A-Za-z0-9]+$ 由26个英文字母和数字组成的字符串 ^-?\d+$ 整数形式的字符串 ^[0-9]*[1-9][0-9]*$ 正整数形式的字符串 [1-9]\d{5} 中国境内6位邮政编码 [\u4e00-\u9fa5] 匹配中文字符(利用UTF-8编码) \d{3}-\d{8}|\d{4}-\d{7} 国内电话号码 xxx-12345678 xxxx-1234567 来源: CSDN 作者: 初叶小白 链接: https://blog.csdn.net/qq_40578499/article/details/104556510

JavaScript中的正则表达式解析

情到浓时终转凉″ 提交于 2020-02-28 15:52:27
正则表达式是一个描述字符模式的对象。   JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法.   在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp对象,也可以用JavaScript 1.2中的新添加的一个特殊语法来创建RegExp对象.就像字符串直接量被定义为包含在引号内的字符一样,正则表达式直接量也被定义为包含在一对斜杠(/)之间的字符.所以,JavaScript可能会包含如下的代码: var pattern = /s$/;   这行代码创建一个新的RegExp对象,并将它赋给变量parttern.这个特殊的RegExp对象和所有以字母"s"结尾的字符串都匹配.用RegExp()也可以定义一个等价的正则表达式,代码如下: var pattern = new RegExp("s$");   无论是用正则表达式直接量还是用构造函数RegExp(),创建一个RegExp对象都是比较容易的.较为困难的任务是用正则表达式语法来描述字符的模式.JavaScript采用的是Perl语言正则表达式语法的一个相当完整的子集.   正则表达式的模式规范是由一系列字符构成的.大多数字符(包括所有字母数字字符)描述的都是按照字面意思进行匹配的字符

正则表达式的真正威力(2)

淺唱寂寞╮ 提交于 2020-02-28 12:45:20
上下文有关文法 接下来再看乔姆斯基谱系上一层:上下文有关语言。 上下文有关语言中的产生式都具有以下形式: α A β → α γ β 这种混合字符初看很复杂,其实很简单。核心依然具有形式 A → γ ,这点跟上下文相关文法一致。不同的是两边多出了 α 和 β 。这两者就构成了上下文(文法的名称由此得来)。所以 A 可以被 γ 替代的条件是其左右也有 α 和 β 。 为了清晰的说明这点,试着解析下面的规则: a b A -> a b c a B c -> a Q H c H B -> H C 翻译出来就是: 只有左边有`a b`时,`A`才可以用`c`替换 只有左边是`a`右边是`c`时,`B`才可以用`Q H`替换 只有走边是`H`时,`B`才可以用`C`替换 上下文相关文法在“一般”编程中是很少遇到的。在自然语言处理中比较重要(因为自然语言显然不是上下文无关的。单词在不同的上下文中意义不同)。然而即便在自然语言处理中,人们也经常使用“温和的上下文相关语言”,因为可以有效建模语言又可以快速解析。 要理解上下文相关文法有多么强大,我们先看一下另一种文法类型,它和上下文相关文法有基本一样的表达能力:非收缩文法。 非收缩文法每一个产生式规则的形式都是 α -> β ,其中 α 和 β 都是任意的符号串,唯一的限制是:右边的符号长度不能小于左边的符号。

LeetCode刷题笔记——#8. 字符串转换整数

☆樱花仙子☆ 提交于 2020-02-28 07:15:35
难度:中等 一、题目描述: 二、解题分析: ###### leetcode 代码主体 ###### class Solution : def myAtoi ( self , str : str ) - > int : INT_MAX = 2147483647 INT_MIN = - 2147483648 str = str . lstrip ( ) #清除左边多余的空格 num_re = re . compile ( '^[\+\-]?\d+' ) #设置正则规则 num = num_re . findall ( str ) #查找匹配的内容 num = int ( * num ) #由于返回的是个列表,解包并且转换成整数 return max ( min ( num , INT_MAX ) , INT_MIN ) #返回值 ############################### ##### 模拟笔试 要写 输入、输出 #### #输入: str = input ( ) #键盘输入,输入为字符 # 输出: output = Solution ( ) print ( output . myAtoi ( str ) )   正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。   Python 自1.5版本起增加了re 模块,它提供 Perl