爬虫6-正则表达式基础知识

正则表达式用来简洁表达一组字符串。

一行胜千言

如用‘PY+‘表示‘PY‘ ‘PYY‘ ‘PYYY‘ ‘PYYYY....‘等字符串

如果,以‘PY’开头,后续存在不多于10个字符,后续字符不能是‘P’或‘Y’,可以用‘PY[^PY]{0,10}’表示

正则表达式在文本处理中十分常用:

1、表达文本类型的特征(病毒,入侵等)

2、同时查找或替换一组字符串

3、匹配字符串的全部或部分(最常用)

正则表达式的使用:

编译:将符合正则表达式语法的字符串转换成正则表达式特征

语法:由字符和操作符构成

操作符 说明 实例
. 表示单个字符  
[ ] 字符集,对单个字符给出取值范围 [abc]表示a,b,c,[a-z]表示a到z单个字符
[^  ] 非字符集,对单个字符给出排除范围 [^abc]表示非a 非b 非c的单个字符
* 前一个字符0次或无限次扩展 abc*表示ab\abc\abcc\abccc等
+ 前一个字符1次或无限次扩展 abc+表示abc\abcc\abccc等
? 前一个字符0次或1次扩展 abc?表示ab\abc
| 左右表达式任意一个 abc|def表示abc\def
{m} 扩展前一个字符m次 ab{2}表示abbc
{m,n} 扩展前一个字符m至n次 ab{1,2}c表示abc\abbc
^ 匹配字符串开头 ^abc表示abc且在一个字符串的开头
$ 匹配字符串结尾 $abc表示abc且在一个字符串的结尾
() 分组标记,内部只能使用|操作符 (abc)表示abc,(abc|def)表示abc\def
\d 数字,等价于[0-9]  
\w 单词字符,等价于[A-Za-z0-9]  

例子:

匹配IP地址的正则表达式

IP地址分4段,每段0-255:

\d+.\d+.\d+.\d+  或者 \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}

精确的IP地址表达式:

原文地址:https://www.cnblogs.com/rayshaw/p/8612906.html

时间: 2024-07-31 17:37:31

爬虫6-正则表达式基础知识的相关文章

javascript之正则表达式基础知识小结

javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料. 元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要用“\”来进行转移. 如果记不清楚那些标点符号需要转移,可以在使用标点符号时都使用反斜杠“\” 简单匹配 1.直接量 /javascript/ 匹配带有“javascript”的字符串 比如“javascript is an object-oriented scripting language” 2.[

转:正则表达式基础知识

一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.如: JScript VBScript 匹配 /^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行. /\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成. /<(.*)&

正则表达式基础知识(一)

之前在linux中用到三剑客grep.awk.sed等,简单的接触过正则表达式,但是没有深入的了解正则表达式,又一次在python里面接触到正则表达式,所以想着尽量一次攻克正则表达式,所以就将自己学习印记留在此处,供自己复习,同时也将相关知识分享给大家. 分享几个在线测试与学习正则的地址: (1)http://deerchao.net/tutorials/regex/regex.htm  正则表达式30分钟入门 (2)http://tool.oschina.net/regex/ 在线测试以及有部

java正则表达式基础知识(转)

1基础 2.1 简单字符类 构造 描述 [abc] a,b或c [^abc] 除a,b或c外的字符 [a-zA-Z] a至z 或 A至Z [a-d[m-p]] a至d 或 m至p [a-z&&[def]] d,e或f @Test public void testChar() { //匹配 b,c或d assertTrue("d".matches("[bcd]")); //匹配除 a,b,c 以外的字符 (否定) assertTrue("d&

Scala学习笔记--正则表达式基础知识、如何在scala内使用

正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www.jb51.net/tools/zhengze.html  版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源 使用格式:  见java API  http://docs.oracle.com/javase/7/docs/api/ java : java.util.reg

[正则表达式]基础知识总结

一直只是知道正则表达式的用途,但具体没使用过,今天稍微了解了下它的基础用法.这里总结一下. 命令空间:System.Text.RegularExpressions 用途: 对字符串进行查找和替换: 识别重复的单词: 转换格式: 区分一个字符串的各个子元素,并进行提取. RegEx类: 是对正则表达式引擎的类抽象,通过调用该抽象类的不同方法,实现对正则表达式的处理. 该类的主要方法如下所示,具体用途相信通过方法名即可知道: 了解完Regex类的主要方法后,还需要关注三个比较重要的类和它们的层次,分

正则表达式基础知识及常用表单验证正则(使用时查找为主,需多加基础方法的例子)

一.需要转义的特殊符号,也就是需要在前面添加\:!$ * + = | . ?  \  / [] {}  ^ () 二.正则表达式基本形式及方法:A:re =new RegExp(“a”,“i”);  //new出来的匹配方式B:   re=/a/i ;                            //直接量(更常用) pattern.exec(str)     //返回数组pattern.test(str)       //返回布尔值pattern.toSource(str)    

正则表达式基础知识01

使用元字符 匹配数字: \d [0-9] \D [^0-9] 匹配字母数字 \w [0-9a-zA-Z_] 注意:包括下划线 \W [^0-9a-zA-Z_] 匹配空白字符 \s 任何空白字符[\f\n\r\t\v] \S 任何非空白字符[^\f\n\r\v] [\b] 匹配退格符是一个特例 匹配十六进制是使用\x前缀加数字  \x0A 匹配\n 八进制使用\0前缀加数字 例子: ?  匹配邮箱:[\w\.]+@[\w\.]+\.\w+    但不是最好的,不完整 ?  邮箱第一字母必须是字母或

正则表达式基础知识02

回溯引用:前后一致匹配 回溯引用(backreference)在文本匹配和文本替换操作里非常有用. 例子1:匹配HTML中任意一级的标题栏中的内容例如:<h1>nihao</h1> 模式1:<[hH][1-6]>.*?</[hH][1-6]>  [注意这里使用懒惰型的*] 但是这里模式不是正确的:例如:<H2>abcd</H3> 显示不是正确的 模式2:<[hH]([1-6])>.*?</[hH]\1>   正

正则表达式基础知识

1.1 句点符号 假设你在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以"t"字母开头,以"n"字母结束.另外,假设有一本英文字典,你可以用正则表达式搜索它的全部内容.要构造出这个正则表达式,你可以使用一个通配符--句点符号".".这样,完整的表达式就是"t.n",它匹配"tan"."ten"."tin"和"ton",还匹配"