<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body {
font-family: "Microsoft YaHei", serif;
}
body, dl, dd, p, h1, h2, h3, h4, h5, h6 {
margin: 0;
}
ol, ul, li {
margin: 0;
padding: 0;
list-style: none;
}
img {
border: none
}
</style>
</head>
<body>
<div id="wrap"></div>
<script>
// .需要转义
// `\n \r \t`等,用于匹配字符串中对应的转义。
// `\s \S` 空格 非空格
//
// `\d \D` 数字 非数字
//
// `\w \W` 字符(数字、字母、下划线) 非字符
//
// `\b \B` 独立部分(起始位置、结束位置、以及除了\w外的) 非独立部分 除了\w之外的都可以是边界
// 就是这样的 /\bjack\b/
// 正则调用的方法
// eg:`reg.test(str)`,检测字符串str中是否包含reg规则,返回布尔值。
//
// eg:`reg.exec(str)`,返回包含匹配结果的数组,没有则返回null。如果正则有 `g` 标志,那么继续调用 会记录成功的值 到了false才会重新来
// 字符串调用的方法
// eg:`str.match(reg)`,返回包含匹配结果的数组,和exec类似。
//
// eg:`str.replace(reg,str|function)`,将匹配的内容用第二个参数的str或者函数返回值替换,返回替换得到的新字符串。
// function中第一个参数是匹配到的内容 第二个是子项
//
// eg:`str.split(reg)`,按照正则规则切割。
// 标志
// 可以在正则表达式后加上标志,标志分为三种:`i`(不区分大小写),`g`(全局匹配),`m`(换行匹配)。其中`i g`较为常用。
// 量词
// `{1,}` 可由 `+` 代替
//
// `{0,}` 可由 `*` 代替
//
// `{0,1}` 可由 `?` 代替
// 子项
// /aqa+/ 这样可以匹配到aq后边1到多个a /a(qa)+/ 这样可以匹配到1到多个qa
// 子项找不到可以到 RegExp
// 捕获组
let s = "12356123";
let r = /(\d+)\d{2}\1/; //这里的1就是把子项1也就是第一个()中的内容重复一遍
console.log(s.match(r));
// 字符集
// [a-e]a到e字符
// [abc]a或者b或者c
// 断言
// `/windows(?=98)/`,匹配后面是字符98的 windows 字符。
//
// `/windows(?!98)/`,匹配后面不是字符98的 windows 字符。
//
// `/(?<=20)19/`,匹配前面是字符20的 19 字符。
//
// `/(?<!20)19/`,匹配前面不是字符20的 19 字符。
// 他不是子项不包含在子项当中
// /123|4/ 整体或者 123或者4
// 如果匹配123或者124 /12(3|4)/
</script>
</body>
</html>
Python3Turtle