当前位置: 首页 > wzjs >正文

如何做网站导航栏的搜索引擎优化海外域名提示风险网站吗

如何做网站导航栏的搜索引擎优化,海外域名提示风险网站吗,外贸英语网站,合肥在线官网第 16 章 正则表达式 16.1 什么是正则表达式 正则表达式(regular expression,常简写为regex、regexp或re),是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本…

第 16 章 正则表达式
16.1 什么是正则表达式
正则表达式(regular expression,常简写为regex、regexp或re),是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。正则表达式可以在文本中查找、替换、提取和验证特定的模式。
16.2 re模块
Python的re模块提供了正则表达式匹配操作。
import re
re模块中提供了一些方法用于查找或处理字符串。
16.2.1 search
re.search(pattern, string)
扫描整个 string 查找正则表达式 pattern 产生匹配的第一个位置,并返回相应的 Match。如果字符串中没有与模式匹配的位置则返回 None。
16.2.2 match
re.match(pattern, string)
如果 string 开头的零个或多个字符与正则表达式 pattern 匹配,则返回相应的 Match。如果字符串与模式不匹配则返回 None。
16.2.3 findall
re.findall(pattern, string)
返回 pattern 在 string 中的所有非重叠匹配,以字符串列表或字符串元组列表的形式。对 string 的扫描从左至右,匹配结果按照找到的顺序返回。空匹配也包括在结果中。
16.2.4 sub
re.sub(pattern, repl, string, count=0)
返回通过使用 repl 替换在 string 最左边非重叠出现的 pattern 而获得的字符串。如果样式没有找到,则不加改变地返回 string。
repl 可以是字符串或函数;如为字符串,则其中任何反斜杠转义序列都会被处理。 也就是说,\n 会被转换为一个换行符,\r 会被转换为一个回车符,依此类推。如果 repl 是一个函数,则它会针对每次 pattern 的非重叠出现的情况被调用。 该函数接受单个 Match 参数,并返回替换字符串。
可选参数 count 是要替换的最大次数;count 必须是非负整数。如果省略这个参数或设为 0,所有的匹配都会被替换。
16.2.5 split
re.split(pattern, string, maxsplit=0)
用 pattern 分开 string 。 如果在 pattern 中捕获到括号,那么所有的组里的文字也会包含在列表里。如果 maxsplit 非零, 最多进行 maxsplit 次分隔, 剩下的字符全部返回到列表的最后一个元素。
16.3 表示字符
字符 描述
. 匹配除 \r,\n 之外的任何单个字符。要匹配包括 \r,\n 在内的任何字符,请使用像 (.|\r|\n) 的模式。
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\w 匹配包括下划线的任何单词字符。等价于 [A-Za-z0-9_],注意Unicode正则表达式会匹配中文字符。
\W 匹配任何非单词字符。等价于 [^A-Za-z0-9_]。
\s 匹配任何空白字符,包括空格、制表符、换页符等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
[xyz] 匹配所包含的任意一个字符。如 [abc] 可以匹配“plain”中的“a”。特殊字符仅有反斜线 \ 保持特殊含义,用于转义字符。其它特殊字符如星号、加号、各种括号等均作为普通字符。脱字符 ^ 如果出现在首位则表示负值字符集合;如果出现在字符串中间就仅作为普通字符。连字符 - 如果出现在字符串中间表示字符范围描述;如果出现在首位(或末尾)则仅作为普通字符。右方括号应转义出现,也可以作为首位字符出现。
[^xyz] 匹配未列出的任意字符。
[a-z] 字符范围。匹配在Unicode编码表指定范围内的任意字符。
例如,[a-z]可以匹配“a”到“z”范围内的任意小写字母字符。
16.4 表示数量
字符 描述

  • 匹配前面的子表达式零次或多次。等价于 {0,}。
  • 匹配前面的子表达式一次或多次。等价于 {1,}。
    ? 匹配前面的子表达式零次或一次。等价于 {0,1}。
    {n} n是一个非负整数。匹配确定的n次。例如, o{2} 不能匹配“Bob”中的“o”,但是能匹配“food”中的两个“o”。
    {n,} 至少匹配n次。
    {n,m} 其中n<=m。最少匹配n次且最多匹配m次。
    ? 非贪心量化:当该字符紧跟在任何一个其他重复修饰符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如对于字符串“oooo”,o+? 将匹配单个“o”,而 o+ 将匹配所有“o”。
    16.5 表示边界
    字符 描述
    ^ 匹配字符串的开始位置。
    $ 匹配字符串的结束位置。
    \b 匹配一个单词边界,也就是指单词和空格间的位置。
    \B 匹配非单词边界。
    16.6 匹配分组
    字符 描述
    x|y 匹配 x 或 y
    (pattern) 匹配 pattern 并获取这一匹配的子字符串。
    (?P pattern) 与常规的圆括号类似,但分组所匹配到了子字符串可通过符号分组名称 name 来访问。
    (?P=name) 引用一个命名组合。
    \num 向后引用一个子字符串,该子字符串与正则表达式的第num个用括号围起来的子表达式匹配。其中num从1开始。例如:(.)\1 匹配两个连续的相同字符。
    16.7 原始字符串
    Python中字符串前面加上 r 表示原始字符串,忽略转义。原始字符串非常适合用于正则表达式,因为正则表达式中通常包含很多反斜杠(例如 \d 或 \w),使用原始字符串可以避免反斜杠带来的转义问题。
    例如:
    import re

text = “abcdef123456”
print(re.search(r"\w+“, text))
print(re.search(”\w+", text)) # SyntaxWarning: invalid escape sequence ‘\w’
不使用原始字符串虽然也能运行,但是会有语法警告。
16.8 案例
16.8.1 匹配电话号码
import re

test = [
“13812345678”, # 合法
“11456817239”, # 非法
“19912345678”, # 合法
“17138412356”, # 合法
“1234567890”, # 非法
“14752345673”, # 合法
“1800123456”, # 非法
]

以1开头,第二位为3,4,5,7,8,9,后面是9位数字

pattern = r"^1[345789]\d{9}$"
for i in test:
print(f"{i:20}{“合法” if re.match(pattern, i) else “非法”}")
16.8.2 匹配邮箱
import re

test = [
“example@example.com”,
“user.name@subdomain.example.co”,
“username@.com”,
“@missingusername.com”,
“-dasd@qq.com”,
]

匹配邮箱

pattern = r"[\w!# %&'*+-/=?^`{|}~.]+@[\w!# %&'*±/=?^`{|}~.]+.[a-zA-Z]{2,}$"
for i in test:
print(f"{i:40}{“合法” if re.match(pattern, i) else “非法”}")
16.8.3 匹配0-255之间的数字
import re

test = [“0”, “9”, “50”, “100”, “199”, “200”, “255”, “256”, “-1”, “01”, “001”]

十位为1-9,?表示可以没有十位,个位是0-9

或 百位是1,十位是0-9,个位是0-9

或 百位是2,十位是0-4,个位是0-9

或 百位是2,十位是5,个位是0-5

pattern = r"^([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])$"
for num in test:
print(f"{num:5} {“合法” if re.match(pattern, num) else “非法”}")
16.8.4 从标签中获取网址
import re

test = “”"

"""

获取所有href中网址

pattern = r"href=“(.+?)”"
for i in re.findall(pattern, test):
print(i)
16.8.5 替换文本中的所有数字为对应的词
import re

test = “I have 2 apples and 3 oranges.”

定义数字到词的映射

num_map = {“1”: “one”, “2”: “two”, “3”: “three”, “4”: “four”, “5”: “five”}
print(re.sub(r"\d", lambda x: num_map[x.group(0)], test)) # I have two apples and three oranges.

http://www.dtcms.com/wzjs/534051.html

相关文章:

  • 网站建设问题调查青岛网站开发中心
  • 网易 自助网站建设手机软件商店下载安装
  • 玩具 东莞网站建设 技术支持广州seo优化代理
  • 广州专业做网站建设建设ipv6网站
  • 福州电子商务网站网站定位要点 有哪些方面
  • 网站的交互设计有什么拉新充场app推广平台
  • 南通建设局网站唐山网站怎么做seo
  • 扬中网站建设门户报价未备案的网站
  • 西安专业做网站网站建设会出现的问题
  • 云网站制作的流程wordpress充值功能
  • 网站建设服务合同书标准版网络公司代理
  • 网站建设与维护的重要性网站销售流程
  • 网站翻新后seo怎么做网站到期忘记续费
  • 帝国网站整站迁移学网页设计报班
  • 淘宝网站都是怎么做的吗品牌创意网站建设
  • 纯flash网站欣赏wordpress进不到后台
  • 西宁手机网站建设如何自己做网站并开发软件
  • 安徽建设干部学校网站aspnet网站开发的书籍
  • 安庆市住房和城乡建设局网站cn.wordpress.org
  • 做er图的网站宠物网站怎么做
  • 陕西省建设厅执业资格注册中心网站免备案的网站空间
  • 网站后台更新 前台看不到免费设计logo的app
  • 建设网站实训报告网站产品简介
  • 快速搭建网站的工具连连电商网站开发公司
  • 漫画网站做任务给金币社交网站开发项目计划报告
  • 多久可以做网站公司企业网页
  • 友情网站w网站怎么做
  • 教育机构网站是百度知道app
  • 长岭网站优化公司双重预防机制信息化平台
  • 上海建筑安全协会网站深圳建网站公司哪家好