base包中的 gsub() 可以替换/删除字符串中的各种标点符号/字母/数据
在gsub函数中,任何字段处理都由将“替换字符”替换到“目标字符”这一流程中实现,令替换字符为’’’'可实现删除,令替换字符为"目标字符+增补内容"可实现增补,替换和切割也是使用类似的操作。
任何符号,包括空格、Tab和换行都是可以识别的
同时字符可以识别多个,进行批量置换
除此之外,gsub还有其他批量操作的方法
以下是所使用的参数的说明:
x - 是字符向量输入。
first - 是第一个字符要被提取的位置。
last - 是最后一个字符要被提取的位置。
(1)用单引号或双引号来创建字符串。
单引号和双引号在 R中没有区别。一般用双引号。单引号通常用于分隔包含"的字符向量。
其他特殊字符列表(用 ?’"’ 或 ?"’" 命令来查看)
功能:返回字符串中的字符数量:
功能:将多个字符串连接成一个字符串。
参数 … :字符串列表或字符向量
参数 sep :分隔符,默认不分隔
参数 collapse :将字符向量中的字符串合并,并用提供的分隔符分隔
str_c() 函数是向量化的,它可以自动循环短向量,使得其与最长的向 量具有相同的长度:
功能:提取或修改字符串的一部分。
参数start和end:Start给出第一个字符的位置(默认为第一个),end给出最后一个字符的位置(默认为最后一个字符)。
功能:将文本转化为大写
参数locale:区域设置,默认为“en”(英语)。区域设置可以参考 ISO 639 语言编码标准,语言编码是 2 或 3 个字母的缩写,见下表,如“tr”(土耳其语)
参数locale:区域设置
是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。描述了一种字符串匹配的模式(pattern)。通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。
参数match:为TRUE时只显示匹配项,为FALSE时只显示不匹配项,为NA时显示匹配项和不匹配项(默认)
很多 stringr 函数都是成对出现的:一 个函数用于单个匹配,另一个函数用于全部匹配,后者会有后缀 _all。
(1) 精确匹配字符串
(2)用.可以匹配任意字符(除了换行符)(但只能匹配1个字符):
(3)如何匹配字符 . 呢?
. 可以匹配任意字符,正则表达式用\来去除某些字符的特殊含义,因此,要匹配.,需要的正则表达式是.(前面加1个\来去除.匹配任意字符的特殊含义,使其仅用来匹配.)。
\ 在字符串中也用作转义字符(去除某些字符的特殊含义),因此,正则表达式 . 的字符串形式应是 \.
要匹配\,需要的正则表达式是\,对应的字符串形式为"\\"
默认情况下,正则表达式会匹配字符串的任意部分。
需要从字符串的开头或末尾进行匹配时,要设置锚点。
^ 从字符串开头进行匹配。
$ 从字符串末尾进行匹配。
很多特殊模式可以匹配多个字符。(虽然可以匹配多个,但是一次只匹配一个,想匹配多次见3.4)
.可以匹配除换行符外的任意字符。
\d 可以匹配任意数字。
\s 可以匹配任意空白字符(如空格、制表符和换行符)
注意:要想创建包含 \d 或 \s 的正则表达式,需要在字符串中对 \ 进行转义,因此需 要输入 “\d” 或 “\s”。
如果优先级让人感到困惑,那么可以使用括号让其表达得更清晰一些:如gr(e|a)y匹配的是grey或gray。
正则表达式的另一项强大功能是,其可以控制一个模式能够匹配多少次。(是将它前面的字符匹配多少次)
+:1 次或多次。相当于{1,}
*:0 次或多次。相当于{0,}
{n,}:匹配 n 次或更多次。
在正则表达式后面加一个 ?,可以将匹配方式更改为“懒惰的”,即匹配尽量短的字符串。
用语言描述以下正则表达式匹配的是何种模式(仔细阅读来确认我们使用的是正则表达式,还是定义正则表达式的字符串)?
a. ^.*$ #这是正则表达式,.*表示重复0次以上的.,这里^和$表示以任意字符开始,以任意字符结束,故这个匹配的是任意字符。
b. “\{.+\}” #这是定义正则表达式的字符串,由于{和}在正则表达式中有特殊含义,所以\{匹配的是单纯的{,\}匹配的是},.+表示重复1次以上的.,.在正则表达式中可匹配任意字符,故这个匹配的是任意花括号里有至少1个字符的字符串,如"{a}“或”{abc}"等
c. \d{4}-\d{2}-\d{2} #这是正则表达式,\d可以匹配任意数字,{4}意思是将任意数字匹配4次,故这个匹配的是4位数字后接一个连字符,然后是两个数字后接一个连字符,然后是另外两个数字。这是一个正则表达式,可以匹配格式为“YYYY-MM-DD”(“%Y-%m-%d”)的日期。如
d. “\\{4}” #这是定义正则表达式的字符串,正则表达式的字符串中\\匹配的是\,故这个匹配的是\\。
阐明优先级,用于消除复杂表达式中的歧义。【前部分】
能对正则表达式进行分组,分组可以在匹配时回溯引用(如 \1、 \2 等)【本部分】
提取一个复杂匹配的各个 部分【后部分】
回溯引用可以匹配到捕获组曾经匹配过的结果。
回溯引用的标志是反斜杠后加数字
回溯引用中的数字是从左至右计算的。回溯引用中的\1对应第一个圆括号中的内容,\2对应第二个圆括号中的内容。
str_view(fruit, “(…)\1”, match = TRUE) #"(…)\1"中…表示匹配任意两个字符,\1表示回溯引用第一个()中的内容,由于用字符串表示,所以表示为\1,故这个匹配的是名称中有重复的一对字母的所有水果
用语言描述以下正则表达式会匹配何种模式?
“(.).\1.\1” #注意这是定义正则表达式的字符串,表示“一个字符后面跟着任意字符,原始字符,任何其他字符,再重复原始字符”,如"abaca"或"b8b.b",即一共5个字符,第1、3、5个字符一样,其余随意。
基本思想:将一个复杂问题分解为多个简单问题
功能:确定一个字符向量能否匹配一种模式,判断的是能否匹配,故结果是逻辑向量,即TRUE或FALSE
如果正则表达式过于复杂,则应该将其分解为几个更小的子表达式,将每个子表达式的匹配结果赋给一个变量,并使用逻辑运算组合起来。
字符串通常会是数据框的一列,此时我们可以使用 filter 操作
功能:返回字符串中匹配的数量
注意:匹配从来不会重叠。
功能:提取匹配的实际文本
str_extract_all()的参数 simplify 默认为FALSE,返回字符向量列表;如果为TRUE,则返回一个字符矩阵,其中较短的匹配会扩展到与最长的匹配具有同样的长度:
功能:可以给出每个独立分组。
结果:str_match() 返回的不是字符向量,而是一个矩阵,其中一列是完整匹配,后面的列是每个分组的匹配:
如果数据是保存在 tibble 中的,那么使用 tidyr::extract() 会更容易。这个函数的工作方式 与 str_match() 函数类似,只是要求为每个分组提供一个名称,以作为新列放在 tibble 中:
功能:用新字符串替换匹配内容
用法1:用固定字符串替换匹配内容(replacement为固定字符串)
功能:将字符串拆分为多个片段
参数simplify:默认为FALSE,返回的是列表;为TRUE时返回矩阵
因为字符向量的每个分量会包含不同数量的片段,所以 str_split() 会返回一个列表。如果拆分的是长度为 1 的向量,那么只要简单地提取列表的第一个元素即可,.[[1]]的功能类似于head(1)
功能:定位模式在字符串中的位置。可以返回每个匹配的开始位置和结束位置。
当使用一个字符串作为模式时, R 会自动调用 regex() 函数对其进行包装。
参数:后面这几个参数的默认设置都是FALSE,也就是说,当它们都是FALSE时即为我们前面所学,regex()也可以简写为仅字符串(模式),只是前面学习时未写出默认参数而已,换言之,如果这些参数为TRUE,那就是不同的意思,可以通过修改参数来控制具体的匹配方式
ignore_case(忽略字母大小写):默认为FALSE,匹配时字母区分有大小写。当 ignore_case = TRUE 时,忽略字母大小写,既可以匹配大写字母,也可以匹配小写字母,它总是使用当前的区 域设置:
功能:可以按照字符串的字节形式进行精确匹配,它会忽略正则表达式中的所有特殊字符,并在非常低的层次上进行操作。这样可以不用进行那些复杂的转义操作,而且速度比普通正则表达式要快很多。
功能:使用标准排序规则来比较字符串,这在进行不区分大小写的匹配时是非常有效的。
参数:可以通过设置 locale 参数(区域设置,默认"en"(英语)),以确定使用哪种规则来比较字符。
coll()函数的弱点是速度,因为确定哪些是相同字符的规则比较复杂,与 regex() 和 fixed() 函数相比, coll() 确实比较慢。
功能:匹配(字母、行、句子和单词)边界
type:要检测的边界类型,可以选c(“character”, “line_break”, “sentence”, “word”),即字母、行、句子和单词,前面例子中用到的是匹配单词边界。
(1) 如何找出包含 \ 的所有字符串?分别使用 regex() 和 fixed() 函数来完成这个任务。
功能:通过(部分)名称查找对象,可以在全局环境空间中搜索所有可用对象。当不能确切想起函数名称时,这个函数特别有用:
功能:可以列出一个目录下的所有文件
dir() 函数的 patten 参数可以是一个正则表达式,此时它只返回与这个模式相匹配的文件名。
stringr 非常容易学习,因为它只提供了非常少的函数(只有42个)
与 stringr 不同, stringi 的设计思想是尽量全面,几乎包含了我们可以用到的所有函数(有 234 个函数)。
(1) 找出可以完成以下操作的 stringi 函数。
执行对大小写不敏感的匹配。 |
执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
括号用于查找一定范围的字符串:
查找方括号之间的任何字符。 |
查找任何从 0 至 9 的数字。 |
查找由 | 分隔的任何选项。 |
前面的字符,重复n-m次(n,m为数字) |
*元字符(Metacharacter)*是拥有特殊含义的字符:
匹配任何包含至少一个 n 的字符串。 |
匹配任何包含零个或多个 n 的字符串。 |
匹配任何包含零个或一个 n 的字符串。 |
<!-- go(),可以用来跳转打指定的页面,需要一个整数作为参数, 1表示向前跳转一个页面,2表示向前跳转两个页面,以此类推。 -1表示向后跳转一个页面,-2表示向后跳转两个页面,以此类推。 --> 6.1 什么是DOM对象 文档对象模型【重点】hiostry 代表浏览器的历史记录(不建议使用)
浏览器网页就是一个DOM树形结构!
可以对这个DOM树型文档进行访问和修改!
要操作一个DOM结点,就必须要先获得这个DOM结点
nodeName 属性总是返回一个大写字母的值,即使元素在 HTML文档里是小写字母
class和类型选择器返回的是一个数组,可以下标读取结点
选择的DOM结点修改style里的属性,注意命名修改为驼峰式命名
nodeName 属性总是返回一个大写字母的值,即使元素在 HTML文档里是小写字母。
如需更改 HTML 元素的样式,请使用此语法:
规定应禁用 input 元素。 |
规定 input 元素的最大值。 |
规定 input 元素的最小值。 |
规定 input 元素的值模式。 |
规定 input 元素的类型。 |
onclick点击事件【重点】
onblur事件 失去焦点(获取焦点后失去)
所以好多事件函数都是这样写:
addEventListener() 方法为元素附加事件处理程序而不会覆盖已有的事件处理程序。
您能够向一个元素添加多个事件处理程序。
您能够向一个元素添加多个相同类型的事件处理程序,例如两个 “click” 事件。
您能够向任何 DOM 对象添加事件处理程序而非仅仅 HTML 元素,例如 window 对象。
第一个参数是事件的类型(比如 “click” 或 “mousedown”)。
第二个参数是当事件发生时我们需要调用的函数。
第三个参数是布尔值,指定使用事件冒泡还是事件捕获。此参数是可选的。
**注意:**请勿对事件使用 “on” 前缀;请使用 “click” 代替 “onclick”。
阻止本来会发生的效果,比如a标签的跳转
给父元素绑定事件,用来监听子元素的冒泡事件,
并找到是哪个子元素的事件
减少对DOM操作,提高代码性能
和后端交互数据的一种格式
**异步交互:**不刷新页面情况下获取并修改后端接口
将请求发送到服务器,用于 GET 请求 |
将请求发送到服务器,用于 POST 请求 |
向要发送的报头添加标签/值对 |
定义当 readyState 属性发生变化时被调用的函数 |
保存 XMLHttpRequest 的状态。0:请求未初始化1:服务器连接已建立2:请求已收到3:正在处理请求4:请求已完成且响应已就绪 |
以 XML 数据返回响应数据 |
返回状态文本(比如 “OK” 或 “Not Found”) |
函数内嵌返回匿名函数,外部可以获取函数内部参数和变量,函数内部参数和变量不会被垃圾回收的 一种手段
// (1)如果类型不同,就一定不相等
// (2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,
// 那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断)
// (3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
// (4)如果两个值都是true,或是false,那么相等
// (5)如果两个值都是null,或是undefined,那么相等
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。