匹配模式相关知识
-
Python正则表达式初识(五)正则表达式的内容很丰富,今天小编继续给大家分享Python正则表达式的基础知识。今天要给大家的讲的特殊字符是竖线“|”。竖线“|”实质上是一个或的关系。1、直接上代码演示,比方说我们需要匹配一个字符串“dcpeng123”,匹配模式为 “(dcpeng|dcpeng123)”,记得匹配模式中要有括号,否则后面的group方法会报错。如上图所示,匹配模式“(dcpeng|dcpeng123)”的意思是只要匹配“dcpeng”或者“dcpeng123”中的任意一个,就说明提取成功。“|”实质上是一个“或”的关系,匹配的结果为“dcpeng”可以满足匹配条件,匹配的结果为“dcpeng123”也可以满足匹配条件。所以在这里,正则表达式首先匹配了字符串“dcpeng”,所以打印出来的结果就是“dcpeng”。2、当我们把匹配模式中两个字符串的顺序调整一下,如下图所示。根据第一步的分析步骤,其匹配结果为“dcpeng123”,在此就不再赘述了。3、如果我们将原始字符串做一下更改,更改为“dcpeng”,而保持匹配模式
-
Python正则表达式初识(五)正则表达式的内容很丰富,今天小编继续给大家分享Python正则表达式的基础知识。今天要给大家的讲的特殊字符是竖线“|”。竖线“|”实质上是一个或的关系。1、直接上代码演示,比方说我们需要匹配一个字符串“dcpeng123”,匹配模式为 “(dcpeng|dcpeng123)”,记得匹配模式中要有括号,否则后面的group方法会报错。如上图所示,匹配模式“(dcpeng|dcpeng123)”的意思是只要匹配“dcpeng”或者“dcpeng123”中的任意一个,就说明提取成功。“|”实质上是一个“或”的关系,匹配的结果为“dcpeng”可以满足匹配条件,匹配的结果为“dcpeng123”也可以满足匹配条件。所以在这里,正则表达式首先匹配了字符串“dcpeng”,所以打印出来的结果就是“dcpeng”。2、当我们把匹配模式中两个字符串的顺序调整一下,如下图所示。根据第一步的分析步骤,其匹配结果为“dcpeng123”,在此就不再赘述了。3、如果我们将原始字符串做一下更改,更改为“dcpeng”,而保持匹配模式
-
Python正则表达式初识(二)前几天给大家分享了Python正则表达式初识(一),介绍了正则表达式中的三个特殊字符“^”、“.”和“*”,感兴趣的伙伴可以戳进去看看,今天小编继续给大家分享Python正则表达式相关特殊字符知识点。1、特殊字符“$”代表的意思是结尾字符。举个栗子,正则表达式“3$”,表示匹配以3为结尾的字符串。代码演示如下图所示。正则表达式匹配模式“.*3$”代表以3结尾的任意字符的字符串,很显然匹配的结果和原始字符串是一致的,所以有返回结果。2、如果将正则表达式匹配模式改为“.*4$”,则表示以4结尾的任意字符的字符串,此时是没有任何的输入结果的,如下图所示。3、正则表达式特殊字符“?”比较常用,其代表的意思是非贪婪匹配模式。默认情况下,匹配字符串是一种贪婪的匹配,换句话说,默认情况下字符串会根据匹配模式,去匹配最大的长度。4、下图是一个实例。其中括号代表的是提取字符串的子串,正则表达式会把满足匹配条件的字符串放到括号里边。匹配模式“.*(p.*p).*”代表的意思是:左边的“.* ”的意思是任意字符串,可以是空,也可
-
Python正则表达式初识(七)继续分享Python正则表达式的基础知识,今天给大家分享的特殊字符是“\s”、“\S”,具体的教程如下。1、“\s”代表的意思是匹配空格,匹配模式“加\s油”代表的是字符“加”和“油”之间有空格的意思,如下图所示。可以看到原始字符串中“加”和“油”之间有空格,与匹配条件相符合,所以匹配成功。2、为了加强理解,现在将原始字符串改为“加加油”,字符中间不为空格,保持匹配模式不变,如下图所示。可以看到无任何输出,说明匹配不成功。3、如果“加”和“油”之间有多个空格的话,则只需要在匹配模式中将“加\s油”改为“加\s+油”即可,如下图所示。4、“\S”代表的意思与“\s”代表的意思刚刚相反,也就是说匹配的那个字符只要不是空格,都可以匹配。如下图所示,继续用第二步那个例子,只要将匹配模式中的“\s”改为“\S”,其他的保持不变,如下图所示。可以看到此时就可以匹配成功。5、而将原始字符串改为“加 油”,两个字符中间有个空格,匹配模式不变,如下图所示。可以看到此时无任何输出,说明匹配不成功。6、同样的,如果要匹配多个非空
匹配模式相关课程
匹配模式相关教程
- 4.1 location 匹配规则 规则匹配=严格匹配。如果请求匹配这个 location,那么将停止搜索并立即处理此请求~区分大小写匹配(可用正则表达式)~*不区分大小写匹配(可用正则表达式)!~区分大小写不匹配!~*不区分大小写不匹配^~前缀匹配@“@” 定义一个命名的location,使用在内部定向时/通用匹配,任何请求都会匹配到
- 4. location 匹配 location 匹配是在 FIND_CONFIG 阶段进行的,我们需要掌握 location 的匹配规则和匹配顺序。
- 5.4 location 匹配 server { server_name location.test.com; listen 8010; location = / { return 200 "精确匹配/"; } location ~* /ma.*ch { return 200 "正则匹配/ma.*ch"; } location ~ /mat.*ch { return 200 "正则匹配/match.*"; } location = /test { return 200 "精确匹配/test"; } location ^~ /test/ { return 200 "前缀匹配/test"; } location ~ /test/he*o { return 200 "正则匹配/test/he*o"; } location / { return 200 "通配/"; }}我们按照这样的 location 规则,进行匹配实验,结果如下:# 精确匹配优先级最高$ curl http://localhost:8010/精确匹配/$ curl http://localhost:8010/test 精确匹配/test# 前缀匹配优先级高于正则匹配$ curl http://180.76.152.113:8010/test/heeo 前缀匹配/test# 正则匹配,按照顺序依次匹配,如果同时匹配两个正则,则前面的优先匹配$ curl http://180.76.152.113:8010/matxxch 正则匹配/ma.*ch# 什么都匹配不到时,最后匹配通配/$ curl http://180.76.152.113:8010/xxxxx 通配/
- 3.2 从字符串的任意位置进行匹配 函数 re.search(pattern, string, flags = 0) 用于在字符串查找与模式匹配的字符串:从字符串 string 的任意位置,查找符合模式 pattern 的子串如果匹配成功,则返回一个 re.MatchObject 对象如果匹配失败,则返回 None参数 flags,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等>>> import re>>> matchObject = re.search('o+', 'www.imooc.com')>>> matchObject.group()'oo'>>> matchObject.span()(6, 8)在第 1 行,导入模块 re在第 2 行,在字符串 ‘www.imooc.com’ 中查找模式 ‘o+’该模式匹配连续的小写字符 o如果找到模式匹配的子字符串,则返回一个匹配对象 matchObject在第 3 行,匹配对象 matchObject.group() 方法返回匹配的字符串在第 5 行,匹配对象 matchObject.span() 方法返回一个元组元组的第 0 项,匹配的字符串在原始字符串中的起始位置元组的第 1 项,匹配的字符串在原始字符串中的结束位置
- 4.2 location 匹配顺序 “=” 精准匹配,如果匹配成功,则停止其他匹配普通字符串指令匹配,优先级是从长到短(匹配字符越多,则选择该匹配结果)。匹配成功的location如果使用^~,则停止其他匹配(正则匹配)正则表达式指令匹配,按照配置文件里的顺序(从上到下),成功就停止其他匹配如果正则匹配成功,使用该结果;否则使用普通字符串匹配结果有一个简单总结如下:(location =) > (location 完整路径) > (location ^~ 路径) > (location ,* 正则顺序) > (location 部分起始路径) > (location /)即:(精确匹配)> (最长字符串匹配,但完全匹配) >(非正则匹配)>(正则匹配)>(最长字符串匹配,不完全匹配)>(location通配)
- 3.1 从字符串的起始位置进行匹配 函数 re.match(pattern, string, flags = 0) 用于在字符串查找与模式匹配的字符串:从字符串 string 的起始位置,查找符合模式 pattern 的子串如果匹配成功,则返回一个 re.MatchObject 对象如果匹配失败,则返回 None参数 flags,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等函数的使用示例如下:>>> import re>>> matchObject = re.match('w+', 'www.imooc.com')>>> matchObject.group()'www'>>> matchObject.span()(0, 3)在第 1 行,导入模块 re在第 2 行,在字符串 ‘www.imooc.com’ 中查找模式 ‘w+’该模式匹配连续的小写字符 W如果找到模式匹配的子字符串,则返回一个匹配对象 matchObject在第 3 行,匹配对象 matchObject.group() 方法返回匹配的字符串在第 5 行,匹配对象 matchObject.span() 方法返回一个元组元组的第 0 项,匹配的字符串在原始字符串中的起始位置元组的第 1 项,匹配的字符串在原始字符串中的结束位置>>> import re>>> matchObject = re.match('W+', 'www.imooc.com')>>> matchObject is NoneTrue在第 1 行,导入模块 re在第 2 行,在字符串 ‘www.imooc.com’ 中查找模式 ‘W+’该模式匹配连续的大写字符 W如果找不到模式匹配的子字符串,则返回一个 None>>> import re>>> matchObject = re.match('o+', 'www.imooc.com')>>> matchObject is NoneTrue在第 1 行,导入模块 re在第 2 行,在字符串 ‘www.imooc.com’ 中查找模式 ‘o+’该模式匹配连续的小写字符 o如果找不到模式匹配的子字符串,则返回一个 None在第 4 行,显示匹配结果是 None尽管字符 string 的中间含有字符串 oo函数 re.match 从字符串 string 的开始位置进行匹配因此找不到匹配
匹配模式相关搜索
-
pack
package
package文件
padding
pages
page对象
panda
panel
panel控件
param
parameter
parcel
parent
parentnode
parents
parse
parse error
parseint
partition
pascal