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

7.网络爬虫—正则表达式详讲

7.网络爬虫—正则表达式详讲与实战

  • Python 正则表达式
    • re.match() 函数
    • re.search方法
    • re.match与re.search的区别
    • re.compile 函数
    • 检索和替换
      • 检索:
      • 替换:
      • findall
      • re.finditer
      • re.split
    • 正则表达式模式
      • 常见的字符类正则模式
      • 正则表达式模式量词
      • 正则表达式举例

前言: 📝​📝​此专栏文章是专门针对网络爬虫基础,欢迎免费订阅!
📝​📝第一篇文章《1.认识网络爬虫》获得全站热榜第一,python领域热榜第一, 第四篇文章《4.网络爬虫—Post请求(实战演示)》全站热榜第八,欢迎阅读!
🎈🎈欢迎大家一起学习,一起成长!!
💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。
在这里插入图片描述

Python 正则表达式

Python 正则表达式是一种用于匹配、搜索、替换文本中模式的工具。它使用特定的语法来描述一些规则,这些规则可以用于匹配文本中的某些模式。通过使用正则表达式,可以快速地搜索和处理大量的文本数据,从而节省时间和精力。

  • 在 Python 中,正则表达式可以通过 re 模块进行操作。

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。
在这里插入图片描述

  • re 模块使 Python 语言拥有全部的正则表达式功能
  • compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
  • re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

re.match() 函数

re.match() 函数是 Python中用于匹配字符串开头的函数。该函数尝试从字符串的开头开始匹配一个正则表达式模式,如果匹配成功,则返回一个匹配对象,否则返回 None

re.match(pattern, string, flags=0)

参数说明:

  • pattern:正则表达式模式。
  • string:要匹配的字符串。
  • flags:可选参数,用于控制正则表达式的匹配方式。
    匹配成功 re.match 方法返回一个匹配的对象,否则返回 None。

示例代码:

import re# 匹配一个以 hello 开头的字符串
pattern = r'hello'
string = 'hello world'
match_obj = re.match(pattern, string)
if match_obj:print('匹配成功')
else:print('匹配失败')

输出结果为:
在这里插入图片描述

我们可以使用 group(num)groups() 匹配对象函数来获取匹配表达式。

参数说明:

  • span() 起始位置

  • group()返回获取参数。

代码展示:

import re
print(re.match('www', 'www.baidu.com').span())  # 在起始位置匹配  (0, 3)
print(re.match('com', 'www.baidu.com'))         # 不在起始位置匹配  None

运行结果:
在这里插入图片描述

re.search方法

re.search方法是Python中re模块的一个函数,用于在字符串中搜索匹配正则表达式的第一个位置,并返回一个包含匹配信息的Match对象。如果没有匹配到,则返回None
该方法的语法如下:

re.search(pattern, string, flags=0)

其中,pattern为正则表达式,string为要搜索的字符串,flags为可选的标志,用于控制正则表达式的行为。

以下是一个简单的示例,演示如何使用re.search方法:

import re# 定义一个正则表达式
pattern = r'hello'# 定义一个字符串
string = 'hello, world!'# 在字符串中搜索匹配项
match_obj = re.search(pattern, string)if match_obj:print('匹配成功!')
else:print('匹配失败!')

输出结果为:

匹配成功!

在这个示例中,我们定义了一个正则表达式模式"hello",然后在字符串"hello,world!“中搜索匹配项。由于该字符串包含"hello”,因此re.search方法返回了一个匹配对象。最后,我们检查匹配对象是否存在,以确定匹配是否成功。

re.match与re.search的区别

re.match和re.search都是Python中re模块中的函数,它们的主要区别在于匹配的位置不同

re.match只会从字符串的开头开始匹配,如果在开头没有匹配到,则返回None。而re.search则会搜索整个字符串,只要找到第一个匹配项,就会返回一个匹配对象

以下是一个简单的示例,演示re.match和re.search的区别:

import re# 定义一个正则表达式
pattern = r'hello'# 定义一个字符串
string = 'hello, world!'# 使用re.match进行匹配
match_obj = re.match(pattern, string)if match_obj:print('re.match匹配成功!')
else:print('re.match匹配失败!')# 使用re.search进行匹配
match_obj = re.search(pattern, string)if match_obj:print('re.search匹配成功!')
else:print('re.search匹配失败!')

输出结果为:

re.match匹配成功!
re.search匹配成功!

在这个示例中,我们定义了一个正则表达式模式"hello",然后在字符串"hello,
world!“中使用re.match和re.search进行匹配。由于"hello"出现在字符串的开头,因此re.match和re.search都返回了一个匹配对象,表示匹配成功。但是,如果我们将字符串改为"world,
hello!”,则re.match将返回None,因为"hello"不在字符串的开头。

re.compile 函数

在Python中,re.compile()函数是用于将正则表达式编译成一个正则表达式对象的函数。编译后的正则表达式对象可以被多次使用,可以提高程序的效率。

re.compile()函数的语法如下:

re.compile(pattern, flags=0)

参数说明:

  • pattern:要编译的正则表达式
  • flags:可选参数,用于指定匹配模式,具体参数参考re模块的文档

示例代码:

import re# 编译正则表达式
pattern = re.compile(r'\d+')
str = 'hello 123 world 456'# 使用正则表达式对象进行匹配
result = pattern.findall(str)
print(result)

输出结果:

['123', '456']

上面的代码中,我们先使用re.compile()函数将正则表达式编译成一个正则表达式对象,然后使用该对象的findall()方法进行匹配。这样可以提高程序的效率,特别是在需要多次使用同一个正则表达式时。

检索和替换

Python中可以使用re模块来进行正则表达式的检索和替换。

re.sub(pattern, repl, string, count=0, flags=0)

参数:

  • pattern : 正则中的模式字符串。
  • repl : 替换的字符串,也可为一个函数。
  • string : 要被查找替换的原始字符串。
  • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

检索:

使用re.search()函数可以在字符串中查找匹配某个正则表达式的子串,返回一个match对象

示例代码:

import restr = "The quick brown fox jumps over the lazy dog."
match = re.search(r'fox', str)if match:print("找到了:", match.group())
else:print("没找到")

输出结果:

找到了: fox

替换:

使用re.sub()函数可以将字符串中匹配某个正则表达式的子串替换成指定的字符串。

示例代码:

import restr = "The quick brown fox jumps over the lazy dog."
new_str = re.sub(r'fox', 'cat', str)print("替换前:", str)
print("替换后:", new_str)

输出结果:

替换前: The quick brown fox jumps over the lazy dog.
替换后: The quick brown cat jumps over the lazy dog.

findall

findall 是 Python 中 re 模块提供的一个函数,用于在字符串中找到所有匹配正则表达式的子串,并返回一个列表。

它的语法如下:

re.findall(pattern, string, flags=0)
  • 其中,pattern 是正则表达式,string 是要匹配的字符串,flags 是可选的标志参数。
  • findall 函数返回一个包含所有匹配子串的列表,如果没有匹配到任何子串,则返回一个空列表。

示例代码:

import repattern = re.compile(r'(\d+) (\d+)')  # 查找数字 有助于一个表达式在不同的情况下测试
result1 = pattern.findall('123 abc 456')
result2 = pattern.findall('123 456   abc  456 789')
print(result1)
print(result2)

输出结果:

在这里插入图片描述

re.finditer

re.finditer 是 Python 中 re 模块提供的一个函数,用于在字符串中找到所有匹配正则表达式的子串,并返回一个迭代器。

它的语法如下:

re.finditer(pattern, string, flags=0)
  • 其中,pattern 是正则表达式,string 是要匹配的字符串,flags 是可选的标志参数。
  • finditer 函数返回一个迭代器,可以迭代得到所有匹配子串的 MatchObject
    对象。如果没有匹配到任何子串,则返回一个空迭代器。
  • findall 不同的是,finditer
    返回的是迭代器,可以逐个获取匹配的结果,而不是一次性获取全部结果。这在匹配大量文本时可以节省内存。

re.split

re.split 是 Python 中 re 模块提供的一个函数,用于按照正则表达式指定的模式分割字符串,并返回一个列表。

它的语法如下:

re.split(pattern, string, maxsplit=0, flags=0)
  • 其中,pattern 是正则表达式,string 是要分割的字符串,maxsplit 是指定最大分割次数,flags
    是可选的标志参数。
  • split 函数返回一个列表,包含所有分割后的子串。如果没有匹配到任何子串,则返回一个包含原字符串的列表。
  • 与 Python 内置的 split 函数不同的是,re.split
    可以按照正则表达式指定的模式进行分割,例如按照空格、逗号、分号等进行分割,而不仅仅是按照固定的字符进行分割。同时,re.split还支持指定最大分割次数,以控制分割的结果。

正则表达式模式

模式字符串使用特殊的语法来表示一个正则表达式:

  1. 字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。
  2. 多数字母和数字前加一个反斜杠时会拥有不同的含义。
  3. 标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。
  4. 反斜杠本身需要使用反斜杠转义。
  5. 由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。模式元素(如 r’\t’,等价于 ‘\t’)匹配相应的特殊字符。
  6. 下表列出了正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。
    在这里插入图片描述

常见的字符类正则模式

字符类正则模式用于匹配一组特定的字符。以下是常见的字符类正则模式

1. [abc]:匹配字符 a、b 或 c 中的任意一个。
2. [^abc]:匹配除了字符 a、b 和 c 以外的任意字符。
3. [a-z]:匹配任意小写字母。
4. [A-Z]:匹配任意大写字母。
5. [0-9]:匹配任意数字。
6. [a-zA-Z]:匹配任意字母。
7. [a-zA-Z0-9]:匹配任意字母或数字。
8. [\s]:匹配任意空白字符,包括空格、制表符、换行符等。
9. [\S]:匹配任意非空白字符。
10. [\d]:匹配任意数字,等同于 [0-9]。
11. [\D]:匹配任意非数字字符。
12. [\w]:匹配任意字母、数字或下划线字符。
13. [\W]:匹配任意非字母、数字或下划线字符。

正则表达式模式量词

正则表达式模式量词用于表示匹配次数,常用的量词包括

1. *:匹配前面的模式零次或多次,等效于{0,}2. +:匹配前面的模式一次或多次,等效于{1,}3. ?:匹配前面的模式零次或一次,等效于{0,1}4. {n}:匹配前面的模式恰好n次;
5. {n,}:匹配前面的模式至少n次;
6. {n,m}:匹配前面的模式至少n次,但不超过m次。

例如,正则表达式模式\d{3,5}表示匹配3到5个数字,正则表达式模式a+b*表示匹配一个或多个a,后面跟零个或多个b。

正则表达式举例

1. 匹配邮箱地址的模式:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
2. 匹配手机号码的模式:^1[3456789]\d{9}$
3. 匹配身份证号码的模式:^\d{17}[\dXx]|\d{15}$
4. 匹配IP地址的模式:^((\d{1,2}|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d{2}|2[0-4]\d|25[0-5])$
5. 匹配URL地址的模式:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
6. 匹配汉字的模式:^[\u4e00-\u9fa5]{0,}$
7. 匹配中文和英文的模式:^[\u4e00-\u9fa5a-zA-Z]+$
8. 匹配邮政编码的模式:^[1-9]\d{5}$
9. 匹配日期的模式:^\d{4}-\d{1,2}-\d{1,2}$
10. 匹配时间的模式:^(0?\d|1\d|2[0-3]):[0-5]\d(:[0-5]\d)?$

🍁 🍁今日学习笔记到此结束,感谢你的阅读,如有疑问或者问题欢迎私信,我会帮忙解决,如果没有回,那我就是在教室上课,抱歉
🍂🍂🍂🍂

在这里插入图片描述

相关文章:

7.网络爬虫—正则表达式详讲

7.网络爬虫—正则表达式详讲与实战Python 正则表达式re.match() 函数re.search方法re.match与re.search的区别re.compile 函数检索和替换检索:替换:findallre.finditerre.split正则表达式模式常见的字符类正则模式正则表达式模式量词正则表达式举例前言&…...

关于位运算的巧妙性:小乖,你真的明白吗?

一.位运算的概念什么是位运算?程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。位运算就是直接操作二进制数,那么有哪些种类的位运算呢?常见的运算符有与(&)、或(|)、异或(^)、…...

【Android车载系列】第5章 AOSP开发环境配置

1 硬件支持 建议空闲内存16G以上,同时硬盘400G以上 内存不够可以使用 Linux 的交换分区2 VMware Workstation安装 https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.1.1-17801498.exe2.1 Ubuntu镜像 http://mirrors.aliyun.com/ubun…...

个人时间管理网站—Git项目管理

🌟所属专栏:献给榕榕🐔作者简介:rchjr——五带信管菜只因一枚😮前言:该专栏系为女友准备的,里面会不定时发一些讨好她的技术作品,感兴趣的小伙伴可以关注一下~👉文章简介…...

2023最新ChatGPT整理的40道Java高级面试题

2023 年最火的就是 ChatGPT 了,很多同事使用他完成一些代码上的智能提示,也有人使用它发了财《「用ChatGPT年入百万!」各博主发布生财之道,网友:答辩搬运工》、《“躺着就能赚大钱”?ChatGPT火了,有人早就动起坏脑筋》等。 最近我也使用 ChatGPT 写技术文章了,比如:《…...

单机分布式一体化是什么?真的是数据库的未来吗,OceanBase或将开启新的里程碑

一. 数据 我们先说说数据这个东西,这段时间的ChatGPT在全世界的爆火说明了一件事,数据是有用的,并且大量的数据如果有一个合适的LLM大规模语言模型训练之后,可以很高程度的完成很多意想不到的事情。 我们大多数的时候的注意力只…...

100天精通Python丨基础知识篇 —— 03、Python基础知识扫盲(第一个Python程序,13个小知识点)

文章目录🐜 1、Python 初体验Pycharm 第一个程序交互式编程第一个程序🐞 2、Python 引号🐔 3、Python 注释🦅 4、Python 保留字符🐯 5、Python 行和缩进🐨 6、Python 空行🐹 7、Python 输出&…...

springboot逍遥大药房管理系统

084-springboot逍遥大药房管理系统演示录像开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&a…...

ZYNQ中的GPIO与AXI GPIO

GPIO GPIO—一种外设,对器件进行观测和控制MIO—将来自PS外设和静态存储器接口的访问多路复用到PS引脚上处理器控制外设的方法—通过一组寄存器包括状态寄存器和控制寄存器,这些寄存器都是有地址的,通过这些寄存器的读写进行外设的控制sessi…...

接口导入功能

1.接口api export function import(param) { return fetch({ url: XXX.import, method: POST, headers: { Content-Type: multipart/form-data; }, data: param }) } 2.页面vue 和 js逻辑 <el-button :loading"disable&qu…...

网络安全知识点总结 期末总结

1、信息安全从总体上可以分成5个层次&#xff0c;密码技术 是信息安全中研究的关键点。 2、握手协议 用于客户机与服务器建立起安全连接之前交换一系列信息的安全信道。 3、仅设立防火墙系统&#xff0c;而没有 安全策略 &#xff0c;防火墙就形同虚设。 4、应用代理防火墙 …...

linux挂载远程目录

服务端操作 # 1、安装NFS程序 yum -y install nfs* rpcbind,在centos6以前自带的yum源中为portmap。 使用yum安装nfs时会下载依赖&#xff0c;因此只要下载nfs即可&#xff0c;无需再下载rpcbind. # 2、查看是否安装了nfs与rpcbind rpm -qa | grep nfs rpm -qa | grep rpc…...

ChatGPT—初识

ChatGPT初识 由于ChatGPT 注册相关的文章被平台限制了&#xff0c;所以有注册相关的问题可以私聊&#xff0c;或者可以代注册 Chat GPT是一款基于GPT模型的对话型AI模型&#xff0c;能够模拟真实的对话风格和行为方式&#xff0c;让人与AI的交互变得更加自然顺畅。下面将从Chat…...

【ArcGIS Pro二次开发】(18):地理处理工具类【Geoprocessing】补遗

ArcGIS Pro SDK 3.0中的Geoprocessing类是用于执行地理处理工具的核心类。地理处理工具是用于执行空间分析、数据转换、数据管理等任务的工具集&#xff0c;包括常见的空间分析工具、栅格处理工具、矢量处理工具、地图制图工具等。 之前有简单记录了下Geoprocessing工具的用法…...

国产芯片方案——红外测温体温计方案

红外测温体温计采用了热电堆式&#xff0c;利用塞贝克效应&#xff0c;将收集到的红外线光信号转化为电信号&#xff0c;再经过放大等处理&#xff0c;按内部的算法校正后再显示屏幕上输出具体温度值&#xff0c;能快速准确地测量人体体温。红外测温体温计广泛应用于医疗卫生、…...

详解ChatGPT的免费总结插件Glarity

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...

RK3588平台开发系列讲解(NPU篇)NPU调试方法

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、日志等级二、NPU 支持查询设置项沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们一起来看一下NPU的调试方法。 一、日志等级 NPU 的运行库会根据开发板上的系统环境变量输出一些日志信息或者生成…...

基于微信小程序+爬虫制作一个表情包小程序

跟朋友聊天斗图失败气急败坏的我选择直接制作一个爬虫表情包小程序&#xff0c;从源头解决问题&#xff0c;从此再也不用担心在斗图中落入下风 精彩专栏持续更新↓↓↓ 微信小程序实战开发专栏 一、API1.1 项目创建1.2 图片爬虫帮助类1.3 测试窗体1.4 接口封装二、小程序2.1 项…...

TS常用数据类型(TypeScript常用数据类型,ts常用数据类型和js常用数据类型的区别)

简述&#xff1a;TS全称TypeScript&#xff0c;是一门弱类型的语言&#xff0c;可以理解为是 JavaScript 的扩展语法&#xff0c;因此我们可以在 ts 中继续写js代码&#xff0c;且不会报错&#xff0c;而且TypeScript 又叫做静态的JavaScript&#xff0c;可称为静态类型语言&am…...

关于Numpy的特殊符号@和矩阵运算

符号之谜 在Numpy中&#xff0c;看到了符号&#xff0c;但是无论是google搜索或者baidu搜索&#xff0c;由于符号是一个特殊字符&#xff0c;所以很难检索到答案。 其实很简单&#xff0c;他就是Numpy库中的一个操作符&#xff0c;在numpy库的说明中&#xff0c;落在numpy.mat…...

动态版通讯录——“C”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容是动态版通讯录啦&#xff0c;其实之前&#xff0c;我就已经写过静态版的通讯录了&#xff0c;只是存在着一些问题&#xff0c;具体细节可以详细看看我的静态版通讯录&#xff0c;好了&#xff0c;话不多说&…...

SpringBoot 将PDF转成图片或World

SpringBoot 将PDF转成图片或World 准备工作Apache PDFBox将PDF转成一张图片将PDF转成多张图片将PDF转成其他文件格式总结SpringBoot 是一款非常流行的 Java Web 开发框架,可以用来构建各种 Web 应用程序。在本篇博客中,我们将介绍如何使用 SpringBoot 将 PDF 转换成图片或其他…...

JavaScript中的for in和for of的区别(js的for循环)

简述&#xff1a;js中的for循环大家都知道&#xff0c;今天来分享下for in和for of在使用时区别和注意事项&#xff0c;顺便做个笔记&#xff1b; 测试数据 //数组const arr [1, 2, 3, 4, 5]//对象const obj {name: "小李",color: ["plum", "pink&q…...

C++的各种初始化

C的各种初始化 1.默认初始化 默认初始化是指定义变量时没有指定初值时进行的初始化操作。例如int a; Sales_data myData;等等。这些变量被定义了而不是仅仅被声明&#xff08;因为没有extern关键字修饰&#xff09;&#xff0c;而且没有显式的赋予初值。特别的&#xff0c;如…...

使用Python突破某网游游戏JS加密限制,进行逆向解密,实现自动登录

兄弟们天天看基础看腻了吧 今天来分享一下如何使用Python突破某网游游戏JS加密限制&#xff0c;进行逆向解密&#xff0c;实现自动登录。 逆向目标 目标&#xff1a;某 7 网游登录主页&#xff1a;aHR0cHM6Ly93d3cuMzcuY29tLw接口&#xff1a;aHR0cHM6Ly9teS4zNy5jb20vYXBpL…...

用CSS3画了一只猫

感觉我写得技术含量不高&#xff0c;全都是用绝对定位写的&#xff0c;一定会有更好的&#xff0c;代码量更少的做法吧 <!DOCTYPE html> <html> <head><title>Cute Cat</title><style type"text/css">*{box-sizing: border-box…...

菜鸟刷题Day7

⭐作者&#xff1a;别动我的饭 ⭐专栏&#xff1a;菜鸟刷题 ⭐标语&#xff1a;悟已往之不谏&#xff0c;知来者之可追 一.整理字符串&#xff1a;1544. 整理字符串 - 力扣&#xff08;LeetCode&#xff09; 描述 给你一个由大小写英文字母组成的字符串 s 。 一个整理好的字…...

蓝桥杯刷题第二十三天

第一题&#xff1a;长草题目描述小明有一块空地&#xff0c;他将这块空地划分为 n 行m 列的小块&#xff0c;每行和每列的长度都为 1。小明选了其中的一些小块空地&#xff0c;种上了草&#xff0c;其他小块仍然保持是空地。这些草长得很快&#xff0c;每个月&#xff0c;草都会…...

进阶指针(3)——指针与数组笔试题的解析

在讲解之前我们先回顾一下&#xff0c;以下将要涉及的重要知识点&#xff1a; 1、数组名是什么&#xff1f; ①sizeof(数组名)&#xff0c;这里的数组名表示整个数组&#xff0c;计算的是整个数组的大小&#xff0c;单位是字节&#xff1b; ②&数组名&#xff0c;这里的数…...

树与二叉树的存储与遍历

文章目录一、树概念二、二叉树三、二叉树的存储与遍历一、树概念 如前面的顺序表&#xff0c;链表&#xff0c;栈和队列都是线性的数据结构&#xff0c;树是非线性的结构。树可以有n个结点&#xff0c;n>0,当n0是就表示树为空 n>0,代表树不为空&#xff0c;不为空的树&am…...

长沙优化网站建设/优化方法

关于图层的几个坐标系。 对于ios来说&#xff0c;坐标系的&#xff08;0&#xff0c;0&#xff09;点在左上角&#xff0c;就是越往下&#xff0c;Y值越大。越往右&#xff0c;X值越大。 一个图层的frame&#xff0c;它是position&#xff0c;bounds&#xff0c;anchorPoint和t…...

wordpress olve/长沙网站制作

为什么80%的码农都做不了架构师&#xff1f;>>> 转载于:https://my.oschina.net/liyangke/blog/2981231...

建设专业网站所需设备/网络营销sem培训

JavaScript经历了非凡的一年。 尽管五月份已经二十岁&#xff0c;但新闻&#xff0c;项目和对该语言的兴趣仍在以指数级增长。 也许是我进入的怪圈&#xff0c;但我想不出另一种以相似的速度发展的技术。 跟上来变得越来越困难&#xff0c;所以我希望这个总结对您有帮助... ECM…...

我想做网站 怎么做呢/优化大师免费安装下载

外接键盘时&#xff0c;如果没反应&#xff0c;可重启手机&#xff0c;再接就可以了。用便签应用测试 OK。五笔输入法&#xff1a;触宝输入法装好后&#xff0c;五笔 要另下载个包&#xff0c;还有手写也一样。插上键盘就可以输入中文了。很简单。 经过测试。noppoo 84 mini 双…...

徐州公司做网站/seo可以从哪些方面优化

应付离散实验足够了&#xff0c;但是还不会调用EasyX绘图啊~~~ 1 #include <bits/stdc.h>2 #include <windows.h>3 4 int start 0;5 6 // 城市名称7 char city_name[6] { A, B, C, D, E, F };8 9 // 记录到过的城市10 int city[6] {0};11 12 13 int pass_count …...

java有没有做项目的网站/营销推广有哪些公司

Commons-SCXML 是一个状态机框架&#xff0c; 首先介绍状态机相关的术语。 1、状态机相关术语 1、1状态机 是一种行为&#xff0c;他说明对象在它的生命周期中响应事件所经历的状态序列以及对那些事件的响应。 1、2状态 是指对象的生命周期中的条件或者状况。在此期间对象将…...