首页
学习
活动
专区
圈层
工具
发布

【Python爬虫实战】正则:多字符匹配、开头与结尾定位、分组技术详解

在 Python 中,通过内置的 re 模块,开发者可以轻松使用正则表达式来解决复杂的文本匹配问题。本篇文章详细介绍了正则表达式中的多字符匹配、开头和结尾匹配、分组匹配等重要概念及其应用。...使用 ^ 表示匹配字符串的开头, 表示匹配字符串的结尾。...二、匹配开头和结尾 在正则表达式中,使用 ^ 和 $ 分别可以匹配字符串的开头和结尾。它们的具体用法如下: (一)匹配字符串的开头:^ ^ 用于匹配字符串的开头。...匹配开头和结尾总结起来有以下几点: ^ 用于匹配字符串的开头。...(三)非捕获分组 有时我们只想对表达式进行分组,而不希望捕获这个分组的匹配结果。可以使用 (?:...) 来创建一个非捕获分组。这样该分组参与匹配,但不会出现在匹配的结果中。

2.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    匹配中文的正则表达式_正则表达式和正规式

    原文链接: http://caibaojian.com/zhongwen-regexp.html 这篇文章主要讲如何使用正则匹配中文字符,中文正则表达式的匹配规则不像其他正则规则一样容易记住,下面一起看看这个中文正则表达式是怎么样的...,只含有汉字、数字、字母、下划线不能以下划线开头和结尾: ^(?!..._)  不能以_开头 (?!.*?..._$)  不能以_结尾 [a-zA-Z0-9_\u4e00-\u9fa5]+  至少一个汉字、数字、字母、下划线 $  与字符串结束的地方匹配 放在程序里前面加@,否则需要\\进行转义 @"^(?!...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.8K20

    shell 文本三剑客之正则表达式

    支持正则表达式的程序如:locate |find| vim| grep| sed |awk 正则表达式是一个三方产品,被常用计算机语言广泛使用,比如:shell、PHP、python、java、js等!...定位符使用技巧:同时锚定开头和结尾,做精确匹配;单一锚定开头或结尾或者不锚定的,做模糊匹配。...定位符 说明 ^ 锚定开头 ^a 以a开头 默认锚定一个字符 $ 锚定结尾 a$ 以a结尾 默认锚定一个字符 测试案例 1)精确匹配 以a开头c结尾的字符串 [root@zutuanxue ~]#...c结尾 中间不包含a-z,0-9 长度为三个字节的字符串 [root@zutuanxue ~]# egrep "^a[^a-z0-9]c$" file a_c aZc a c 5)精确匹配 以...e开头f结尾 中间是*号 长度为三个字节的字符串 e*f [root@zutuanxue ~]# egrep "^e\*f$" file e*f 6)精确匹配 以a开头b或c结尾 中间是任意

    2.1K40

    Nginx之location详解

    如 A 中只匹配根目录结尾的请求,后面不能带任何字符串; ^~ 开头表示uri以某个常规字符串开头,不是正则匹配; ~ 开头表示区分大小写的正则匹配; ~* 开头表示不区分大小写的正则匹配; / 通用匹配...# 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后...^~ /images/ { # 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。...(gif|jpg|jpeg)$ { # 匹配所有以 gif,jpg或jpeg 结尾的请求 # 然而,所有请求 /images/ 下的图片会被 config D 处理,因为 ^~ 到达不了这一条正则...,继续往下搜索,匹配到这一条正则,采用 # 因为都是正则匹配,优先级一样,选择最上面的 [ configuration H ] } location ~* /js/.*/\.js 优先级 (

    1.3K10

    nginx路径匹配_url路径匹配

    /.*/\.js 以 = 开头,表示精确匹配;如只匹配根目录结尾的请求,后面不能带任何字符串。...以^~ 开头,表示uri以某个常规字符串开头,不是正则匹配 以~ 开头,表示区分大小写的正则匹配; 以~* 开头,表示不区分大小写的正则匹配 以/ 开头,通用匹配, 如果没有其它匹配,任何请求都会匹配到.../ 开头,所以这条规则将最后匹配到默认请求中 #但是正则和最长字符串会优先匹配 location / { [ configuration B] } 例如: location / {...{ [ configuration CC ] } 5、# 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    8.8K31

    正则表达式

    支持正则表达式的程序如:locate |find| vim| grep| sed |awk 正则表达式是一个三方产品,被常用计算机语言广泛使用,比如:shell、PHP、python、java、js等!...定位符使用技巧:同时锚定开头和结尾,做精确匹配;单一锚定开头或结尾或者不锚定的,做模糊匹配。...定位符 说明 ^ 锚定开头 ^a 以a开头 默认锚定一个字符 $ 锚定结尾 a$ 以a结尾 默认锚定一个字符 测试案例 1)精确匹配 以a开头c结尾的字符串 [root@zutuanxue ~]#...-9]c$" file acc abc a3c 4)精确匹配 以a开头c结尾 中间不包含a-z,0-9 长度为三个字节的字符串 [root@zutuanxue ~]# egrep "^a[^a-z0...以a开头c结尾 中间是A-Z任意字符 长度为三个字节的字符串 [root@zutuanxue ~]# egrep "^a[[:upper:]]c$" file aZc 5)精确匹配 以a开头c结尾

    90330

    nginx中的location & root & alias & rewrite

    location& root & alias 匹配规则 已=开头表示精确匹配 如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。...^~ 开头表示uri以某个常规字符串开头,不是正则匹配 ~ 开头表示区分大小写的正则匹配; ~* 开头表示不区分大小写的正则匹配 / 通用匹配, 如果没有其它匹配,任何请求都会匹配到 location...^~ /images/ { # 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。...(gif|jpg|jpeg)$ { # 匹配所有以 gif,jpg或jpeg 结尾的请求 # 然而,所有请求 /images/ 下的图片会被 config D 处理,因为 ^~ 到达不了这一条正则...,继续往下搜索,匹配到这一条正则,采用 [ configuration H ] } location ~* /js/.*/\.js 顺序(no优先级:) (location =) > (

    3.4K40

    第二章 正则表达式位置匹配攻略

    p)** 2.1 ^和$ ^(脱字符)匹配开头,在多行匹配中匹配行开头。 $(美元符号)匹配结尾,在多行匹配中匹配行结尾。 比如我们把字符串的开头和结尾用”#”替换(位置可以替换成字符的!)...(result); // => "[#JS#] #Lesson_01#....相关案例 4.1 不匹配任何东西的正则 让你写个正则不匹配任何东西 easy,/.^/ 因为此正则要求只有一个字符,但该字符后面是开头。...=(\d{3})+$)/g, ',')console.log(result); // => ",123,456,789" 因为上面的正则,仅仅表示把从结尾向前数,一但是3的倍数,就把其前面的位置替换成逗号...此时我们需要修改正则,把里面的开头^和结尾$,替换成\b: var string = "12345678 123456789",reg = /(?!\b)(?

    2.4K100

    Nginx配置location总结及rewrite规则写法

    (gif|jpg|jpeg)$ {     # 匹配所有以gif,jpg或jpeg结尾的请求     # 然而,苏朋友请求/images/下的图片会被config D处理,因为^~到达不了这一正则    ...,继续往下搜索,匹配到这一正则,采用     [ configuration H ] } location ~* /js/.*/\.js 以=开头表示精确匹配。...如A中只匹配根目录结尾的请求,后面不能带任何字符串。...^~开头表示uri以某个常规字符串开头,不是正则匹配 ~开头表示区分大小写的正则匹配 ~*开头表示不区分大小写的正则匹配 /通用匹配,如果没有其它匹配,任何请求都会匹配到 顺序 && 优先级 (location...= ~ 正则表达式匹配,~* 不区分大小写的匹配,!~ 区分大小写的不匹配 -f  和!-f 用来判断是否存在文件 -d 和 !-d 用来判断是否存在目录 -e 和 !

    1.8K10

    手把手教你写一个AST

    回顾正则表达式 先来看几组简单的正则表达式: ^ 匹配一个输入或一行的开头,/^a/匹配"ab",而不匹配"ba" 匹配一个输入或一行的结尾,/匹配"ba",而不匹配"ab" 匹配前面元字符 0... 这个字符串用正则描述大致如下: 以 开头 跟着 div 字符,然后接着 > ,然后是中文 “我是一个 div”,再跟着 结尾。...div 是 HTML 的标签,我们知道 HTML 标签是已字母和下划线开头,包含字母、数字、下滑线、中划线、点号组成的,对应正则如下: const ncname = '[a-zA-Z_][\w-.]*'...跟着多个不是 " 的字符,然后跟着 ” 结尾 ' 开头 跟着多个不是 ‘ 的字符,然后跟着 ' 结尾 不是(空格,”,’,=,)的多个字符 我们测试一下 attr 的正则 "class=abc"...首先判断是否是 开头,如果是则说明是标签结尾标识 if(html.indexOf("</")==0){ match = html.match(endTag); if(match){

    1.7K20

    玩转JavaScript正则表达式

    :”形式的分组不编码 锚字符 字符 匹配 ^ 匹配字符串的开头,在多行检索中,匹配一行的开头 $ 匹配字符串的结尾,在多行检索中,匹配一行的结尾 \b 匹配一个单词的边界,简而言之,就是位于字符\w和字符...\W之间的位置,或位于字符\w和字符串的开头或结尾之间的位置(但需要注意的是在字符组内[\b]匹配的是退格符) \B 匹配非单词边界的位置 (?...匹配一行的开头和字符串的开头,$匹配行的结束和字符串的结束 用于模式匹配的String方法 方法 意义 String.search() 参数:一个正则表达式。...$/ 匹配合法的主机名:由点号分隔部分组成,每个部分可以包括ASCⅡ字符、数字和连字符,但不能以连字符开头和结尾。...所以我们需要保证,字符串里的反斜杆不能以[^"]方式匹配。

    2.1K50

    玩转 JavaScript 正则表达式

    :”形式的分组不编码 锚字符 字符 匹配 ^ 匹配字符串的开头,在多行检索中,匹配一行的开头 $ 匹配字符串的结尾,在多行检索中,匹配一行的结尾 \b 匹配一个单词的边界,简而言之,就是位于字符\w和字符...\W之间的位置,或位于字符\w和字符串的开头或结尾之间的位置(但需要注意的是在字符组内[\b]匹配的是退格符) \B 匹配非单词边界的位置 (?...匹配一行的开头和字符串的开头,$匹配行的结束和字符串的结束 用于模式匹配的String方法 方法 意义 String.search() 参数:一个正则表达式。...$/ 匹配合法的主机名:由点号分隔部分组成,每个部分可以包括ASCⅡ字符、数字和连字符,但不能以连字符开头和结尾。...所以我们需要保证,字符串里的反斜杆不能以[^"]方式匹配。

    5K00

    开发必备的nginx常用功能使用说明指南

    ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。...以xx开头 ~ 开头表示区分大小写的正则匹配 以xx结尾 ~* 开头表示不区分大小写的正则匹配 以xx结尾 !~和!...~*分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 通用匹配,任何请求都会匹配到。...多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考) 首先精确匹配 =-->其次以xx开头匹配^~-->然后是按文件中顺序的正则匹配-->最后是交给...(gif|jpg|jpeg|png|css|js|ico)$ { //以xx结尾 root /webroot/res/; } #第三个规则就是通用规则,用来转发动态请求到后端应用服务器

    95010

    玩转JavaScript正则表达式

    :”形式的分组不编码 锚字符 字符 匹配 ^ 匹配字符串的开头,在多行检索中,匹配一行的开头 $ 匹配字符串的结尾,在多行检索中,匹配一行的结尾 \b 匹配一个单词的边界,简而言之,就是位于字符\w和字符...\W之间的位置,或位于字符\w和字符串的开头或结尾之间的位置(但需要注意的是在字符组内[\b]匹配的是退格符) \B 匹配非单词边界的位置 (?...匹配一行的开头和字符串的开头,$匹配行的结束和字符串的结束 用于模式匹配的String方法 方法 意义 String.search() 参数:一个正则表达式。...$/ 匹配合法的主机名:由点号分隔部分组成,每个部分可以包括ASCⅡ字符、数字和连字符,但不能以连字符开头和结尾。...所以我们需要保证,字符串里的反斜杆不能以[^"]方式匹配。

    1.6K30

    史上最全正则表达式,值得收藏备用

    在做项目的过程中,使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式,下面是对常用的正则匹配做了一个归纳整理。...] 数字 [0-9] 匹配中文,英文字母和数字及下划线 ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 同时判断输入长度 [\u4e00-\u9fa5_a-zA-Z0-9_]{4,10} 不能以特定字符开头结尾..._) 不能以_开头 (?!.*?..._$) 不能以_结尾 至少一个汉字、数字、字母、下划线 [a-zA-Z0-9_\u4e00-\u9fa5]+ 与字符串结束的地方匹配 $ 只含有汉字、数字、字母、下划线,下划线位置不限 ^[a-zA-Z0...u4e00-\u9fa5]+$ 由数字、26个英文字母或者下划线组成的字符串 ^\w+$ 2~4个汉字 ^[\u4E00-\u9FA5]{2,4}$ 最长不得超过7个汉字,或14个字节(数字,字母和下划线)正则表达式

    83120
    领券