正则表达式

{JS}JavaScript使用正则表达式

天涯浪子 提交于 2019-12-30 08:58:06
{JS}JavaScript使用正则表达式 {JS}JavaScript使用正则表达式 正则表达式概述 在 前面已经涉及了一些正则表达式的用法,现在将系统地学习正则表达式的语法和用途。正则表达式主要用于进行字符串的模式匹配,例如判断一个字符串是否符合指 定格式等。例如在windows下搜索文件,可以用“*”或者“?”这样的通配符。在正则表达式的语法中,有更多这样的符号用于表示一个字符串的模式,表 7.1列出了所有的特殊符号,它们也被称为元字符。 表7.1 正则表达式中的元字符 字 符 说 明 \ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n”匹配换行符。序列“\\”匹配“\”,“\(”匹配“(” ^ 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与“\n”或“\r”之后的位置匹配 $ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$还会与“\n”或“\r”之前的位置匹配 * 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于{0,} + 一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。+ 等效于 {1,} ? 零次或一次匹配前面的字符或子表达式。例如,“do(es)?

资料: JavaScript使用正则表达式

心已入冬 提交于 2019-12-30 08:57:46
JavaScript使用正则表达式 正则表达式概述 在 前面已经涉及了一些正则表达式的用法,现在将系统地学习正则表达式的语法和用途。正则表达式主要用于进行字符串的模式匹配,例如判断一个字符串是否符合指 定格式等。例如在windows下搜索文件,可以用“*”或者“?”这样的通配符。在正则表达式的语法中,有更多这样的符号用于表示一个字符串的模式,表 7.1列出了所有的特殊符号,它们也被称为元字符。 表7.1 正则表达式中的元字符 字 符 说 明 \ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n”匹配换行符。序列“\\”匹配“\”,“\(”匹配“(” ^ 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与“\n”或“\r”之后的位置匹配 $ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$还会与“\n”或“\r”之前的位置匹配 * 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于{0,} + 一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。+ 等效于 {1,} ? 零次或一次匹配前面的字符或子表达式。例如,“do(es)?”匹配“do”或“does”中的“do”。? 等效于

JavaScript使用正则表达

五迷三道 提交于 2019-12-30 08:57:29
JavaScript使用正则表达 正则表达式概述 在前面已经涉及了一些正则表达式的用法,现在将系统地学习正则表达式的语法和 用途。正则表达式主要用于进行字符串的模式匹配,例如判断一个字符串是否符合指定格式等。例如在windows下搜索文件,可以用“*”或者“?”这样的 通配符。在正则表达式的语法中,有更多这样的符号用于表示一个字符串的模式,表7.1列出了所有的特殊符号,它们也被称为元字符。 使用这些元字符,可以表示具有特定模式的字符串,例如: /^\s*$/:匹配一个空行。 /\d{2}-\d{5}/:匹配由两位数字、一个连字符再加5位数字组成的ID号。 /<\s* (\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/:匹配HTML标记。 像这种以斜杠开始和结尾的字符序列称为正则表达式,在JavaScript中可以很方便地使用这些表达式。 使用RegExp对象执行字符串模式匹配 RegExp是JavaScript中的正则表达式对象,利用它可以完成字符串匹配的各种操作。获得一个RegExp对象可以有两种方式: var objRegExp=/pattern*/[flag] //或者 var objRegExp=new RegExp("pattern" [,"flag"]); 其中pattern是要匹配的模式,flag表示搜索模式,有两个可选参数,分别是g和i

js正则表达式

為{幸葍}努か 提交于 2019-12-30 08:56:34
正则表达式的写法: var reg = new RegExp("str"," gim ");  new正则对象 var reg1 = /str/ gim ;      正则字面量(常用)   g  全局匹配   i   不区分大小写   m  执行多行匹配 根据需求选择: i   im   img   ig  gm   g   m 比较new RegExp()与RegExp() : 当我们在new正则对象,里面传递的参数是正则对象时,如:var reg2 = new RegExp(reg1,'g'),此时生成的是一个新的正则对象,也就是reg2 === reg1  返回false; 我们不用new时,直接写RegExp(),如:var reg3 = RegExp(reg1,'g'),此时没有生成新的对象,reg3的值还是原来的正则对象,reg3 === reg1  返回true; 正则字面量 : var reg = /[abcde]/;   一个[]表示一个字符 ,匹配abcde中的任意一个字符 var reg = /[a-z]/;    "-"写在范围中间,就认为成一个区间,如需匹配“-”,不要将它写在中间就行;匹配所有的小写字母中的一个 var reg = /[^abc]/;   "^"写在[]里表示取反,匹配除了abc字符外的所有字符中的一个 var reg = /^[abc

正则表达式规则

霸气de小男生 提交于 2019-12-30 08:56:06
正则表达式 语法:/正则表达式主体/修饰符(可选) 修饰符i:不区分大小写 修饰符g:匹配所有 /huaqing/:正则表达式主体,不要加引号 test() :是一个正则表达式方法,用于检测字符串是否匹配某个模式,如果有匹配的文本,返回true,否则返回 false; exec() :检索字符串中正则表达式的匹配,如果有返回匹配值,否则返回null; [abc] 表达式用于查找方括号中的任何字符或字符范围; [^abc] 表达式用于查找任何不在方括号中的字符或字符范围; (str1|str2|str3):匹配任何指定的选项; .:查找单个字符; \d :查找数字; \s :查找空白字符; \w :查找单词字符,包括:a-z、A-Z、0-9,以及下划线; \W:和\w匹配相反 \uxxxx :查找以十六进制数xxxx 规定的Unicode字符; n+ :匹配包含至少一个n的字符串; n* :匹配包含零个或多个n的字符串; n? :匹配包含零个或一个n的字符串; n{x} :匹配包含x个n的字符串; n{x,y} :匹配包含至少x最多y个n的字符串; n{x,} :匹配包含至少x个n的字符串; n$ :匹配为n结尾的字符串; ^n :匹配开头为n的字符串; match() :找到一个或多个正则表达式的匹配; search() :检索与正则表达式相匹配的子字符串; replace()

正则表达式

[亡魂溺海] 提交于 2019-12-30 08:55:07
正则表达式:(regExp)或RE (用来操作字符串的) 1、常用的几种方法和作用: a、数据验证: 可以测试输入的字符串是否含有非法字符、是否符合邮箱格式等。 b、替换文本 可以识别文档中的特定文本,然后选择完全删除或用其他文本替换。 c、查找文本: 可以查找文档内或输入域内特定的文本内容。 2、语法: 创建正则: * 构造函数:let var = new RegExp(pattern,modifiers); *字面量:let re = /pattern/modifiers; 参数说明: pattern:模式。(定义规则) modifiers:修饰符(是否进行全局搜索、是否区分大小写) 3、RegExp对象方法: test()  方法搜索制定的值,他所返回的结果是true或false。 exec()  方法搜索制定的值,他所返回的值如果存在,则输出的是值所在的具体位置, 若是返回的值不存在,则输出的值是null。 compile()  该方法是用于改变RegExp的(可以改变你所要搜索的值)。 eg: let re = /a/;(包含a) console.log(re.test("hello my name is ")); 4.修饰符: i  不区分大小写。 g  全局查找。 5.用来查找某个范围: 表达式       描述 [abc]   查找方括号之间的任何字符。 [^abc

网络爬虫之定向爬虫:爬取当当网2015年图书销售排行榜信息(Crawler)

天涯浪子 提交于 2019-12-30 02:23:23
做了个爬虫,爬取当当网-- 2015年图书销售排行榜 TOP500 爬取的基本思想是:通过浏览网页,列出你所想要获取的信息,然后通过浏览网页的源码和检查(这里用的是chrome)来获相关信息的节点,最后在代码中用正则表达式来匹配相关节点的信息。 难点:   1.选取抓取节点   2.抓取信息的正则表达式(需要考虑到特别个例,有时候要重复试很多次才搞定)   3.格式的转换(window下命令提行默认的编码是GBK,而网页默认的是编码是utf-8,编码不匹配就会出现乱码)   4.将抓取的信息加载到数据库里,这里对格式处理的要求比较高。之前在这里卡了好久。 抓取的一些小技巧: 对于抓取条码多而复杂的,而且在源码中的格式不是完全一样的,可以将代表性的条目单独挑出来分析,我是将条目剔出来放到excel表格中进行分析的: 分析书名和作者: 一次类推,可以比较快速和方便的匹配到你想要的东西。 本爬虫采用的是面向对象编程的形式来代码实现。 网页源码 代码中,正则表达式匹配的部分示例: 爬取过程的打印信息: 结果展示(由于之后要以一定的格式插入数据库,所以格式上没有做很好的排版): 数据插入数据库后相关的操作: 以上是相关图片展示,废话少说直接上代码,代码托管在github上: https://github.com/ptJohny/Web-Crawler/tree/master/crawler

nginx location 匹配的规则

前提是你 提交于 2019-12-30 02:17:14
nginx 的配置文件中, server里面的location 的配置项的理解: server { listen 24010; client_max_body_size 30M; location =/ { #范围 / 根目录的时候,这个普通的结构会被最后一步的结果覆盖。 index aa; root /data/root; try_files /m.html =502; } location /bb/{ index a.html; root /data/root; } location =/bb{ root /data/root; try_files /index.html =404; } location ~* \.html { root /data/M4-Product/www/gitvidagrid/app/webroot/ysr; } } #访问 /bb/a.html的时候,最后一个location优先级比倒数第二个优先级更高。    1. =xx 这个是精确匹配,当匹配到时, 会中断后续的匹配。    =/ 这个只匹配根目录, http请求中,ip后面不管加不加 / , 发出的http请求头, 都是带有 / 的。 2. / 这个可以匹配所有的uri, 3. /xx/ 这个是普通的前缀匹配, (当多个前缀匹配满足时, 匹配的是更长的那个。 当既满足某个普通匹配

Nginx的location匹配规则

假如想象 提交于 2019-12-30 02:15:27
一 Nginx的location语法 location [=|~|~*|^~] /uri/ { … } = 严格匹配。如果请求匹配这个location,那么将停止搜索并立即处理此请求 ~ 区分大小写匹配(可用正则表达式) ~* 不区分大小写匹配(可用正则表达式) !~ 区分大小写不匹配 !~* 不区分大小写不匹配 ^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式 示例1: location / { } 匹配任意请求 示例2: location ~* .(gif|jpg|jpeg)$ { rewrite .(gif|jpg|jpeg)$ /logo.png; } 不区分大小写匹配任何以gif、jpg、jpeg结尾的请求,并将该请求重定向到 /logo.png请求 示例3: location ~ ^.+\.txt$ { root /usr/local/nginx/html/; } 区分大小写匹配以.txt结尾的请求,并设置此location的路径是/usr/local/nginx/html/。也就是以.txt结尾的请求将访问/usr/local/nginx/html/ 路径下的txt文件 二 alias与root的区别 root 实际访问文件路径会拼接URL中的路径 alias 实际访问文件路径不会拼接URL中的路径 示例如下:

正则表达式

断了今生、忘了曾经 提交于 2019-12-30 01:03:35
1. 匹配单个字符 字符 功能 . 匹配任意1个字符(除了\n) [ ] 匹配[ ]中列举的字符 \d 匹配数字,即0-9 \D 匹配非数字,即不是数字 \s 匹配空白,即 空格,tab键 \S 匹配非空白 \w 匹配单词字符,即a-z、A-Z、0-9、_ \W 匹配非单词字符 2. 匹配多个字符 字符 功能 * 匹配前一个字符出现0次或者无限次,即可有可无 + 匹配前一个字符出现1次或者无限次,即至少有1次 ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有 {m} 匹配前一个字符出现m次,前面的表达式作用m次 {m,n} 匹配前一个字符出现从m到n次,前面的表达式作用m到n次 3. 匹配开头和结尾 字符 功能 ^ 匹配字符串开头,一后面的一串表达式开头 $ 匹配字符串结尾,以前面的一串表达式结尾 4. 匹配分组 字符 功能 | 匹配左右任意一个表达式 (ab) 将括号中字符作为一个分组,(xxx|xxx|xxx) \num 引用分组num匹配到的字符串 (?P<name>) 分组起别名 (?P=name) 引用别名为name分组匹配到的字符串 示例:| # 添加| ret = re.match("[1-9]?\d$|100","8") print(ret.group()) # 8 ret = re.match("[1-9]?\d$|100","78") print