×

精通正则表达式

精通正则表达式的简单介绍

admin admin 发表于2023-04-08 02:12:07 浏览89 评论0

抢沙发发表评论

本文目录一览:

精通正则表达式是种怎样的体验?

不能算多精通,只是会了正则以后就会想着用正则解决各种问题,就像上帝又给你打开一扇窗。

平时分析日志什么的不在话下,有时还能做一些用框架或很复杂的方法才能做到的事。

比如想用Python写点脚本抓数据,定义好SQL以后中以根据SQL来生成Python的Entity代码,然后用反射写DAO,这样写完SQL你就有现成的DAO可以用了,这也算是一个简单的ORM吧,虽然可以用Django等框架,但用自己生成的代码还是很爽的,想怎么改就怎么改。-精通正则表达式

根据SQL生成Entity的代码:

#!/usr/bin/perl -W

if (!$ARGV[0])

{

print "Usage: $0 filename\n";

print "Example: $0 test.sql entity.py\n";

exit;

}

print "#!/usr/bin/python\n# vim:set fdm=indent:\n# Please do NOT modify this file, it was generated by a Perl script, a next generate will restore all your work.\n\n";-精通正则表达式

print "class Entity:\n\tdef __str__(self):\n\t\treturn '\\n'.join(map(lambda attr: '%s: %s' % (attr, str(getattr(self, attr))), filter(lambda attr: not attr.startswith('__'), dir(self))))\n\n";-精通正则表达式

open FILE, $ARGV[0];

while (FILE)

{

s/\r//g;

s/^\n$//;

s/^\(.*\n//;

s/^\s*(BEGIN|COMMIT|GRANT|CONSTRAINT|DROP).*\n//i;

s/^\s*USE\s+\w+.*\n//i;

s/^\s*\w*\s*KEY.*\n//i;

s/^\s*CREATE\s*DATABASE.*\n//i;

s/^(\s*)\/\*(.*)\*\/.*/$1#$2/;

s/^\s*CREATE\s*TABLE\s*(?:IF\s*NOT\s*EXISTS\s*)?(\w+)\s*\(?$/class $1Entity(Entity):\n\tdef __init__(self):\n/i;-精通正则表达式

s/(?=^class )(\w)/\U$1/;

s/(?=^class )(\w*?)_(\w)/$1\U$2/g while /^class.*?_/;

s/^\s*(\w+)\s+\w*INT.*$/\t\tself.$1 = 0/i;

s/^\s*(\w+)\s+DECIMAL.*$/\t\tself.$1 = 0/i;

s/^\s*(\w+)\s+BOOLEAN.*$/\t\tself.$1 = False/i;

s/^\s*(\w+)\s+TIMESTAMP.*$/\t\tself.$1 = 0/i;

s/^\s*(\w+)\s+\w*CHAR.*$/\t\tself.$1 = ''/i;

s/^\s*(\w+)\s+TEXT.*$/\t\tself.$1 = ''/i;

s/^\s*(\w+)\s+DATETIME.*$/\t\tself.$1 = ''/i;

s/^\).*//;

print

}

print "if __name__ == '__main__':\n\tprint(UserEntity())"

精通正则表达式的目录

第1章 正则表达式概述 3

1.1 什么是正则表达式 3

1.2 第一个正则表达式 4

1.3 测试工具 5

第2章 正则表达式基础理论 7

2.1 元字符 7

2.1.1 匹配位置的元字符 8

2.1.2 匹配字符的元字符 8

2.1.3 元字符总结 9

2.2 字符类 12

2.3 字符转义 14

2.4 反义 14

2.5 限定符 15

2.6 替换 21

2.7 分组 23

2.8 后向引用 24

2.9 零宽度断言 25

2.10 负向零宽度断言 27

2.11 匹配选项 27

2.12 注释 28

2.13 优先级顺序 28

2.14 递归匹配 29

2.15 典型正则表达式解释 30

第3章 数字验证 33

3.1 数值验证 33

3.1.1 只包含数字 33

3.1.2 整数验证 37

3.1.3 指定范围的整数验证 38

3.1.4 实数验证 42

3.1.5 指定精度的实数验证 45

3.1.6 科学计数法的数值验证 45

3.1.7 二进制数值验证 46

3.1.8 八进制数值验证 47

3.1.9 十六进制数值验证 49

3.2 电话号码验证 50

3.2.1 手机号码验证 50

3.2.2 固定电话号码(不包括区号)验证 51

3.2.3 “区号+固定电话号码”验证 53

3.2.4 “区号+固定电话号码+分机号码”验证 54

3.2.5 固定电话号码验证总结 55

3.3 邮政编码验证 57

3.3.1 国内邮政编码验证 57

3.3.2 国际邮政编码验证 57

3.4 IP地址验证 58

3.4.1 简单IP地址验证 58

3.4.2 精确IP地址验证 59

3.4.3 子网内部IP地址验证 60

3.4.4 64位IP地址验证 61

3.5 身份证验证 63

3.5.1 15位身份证号码验证 63

3.5.2 18位身份证号码验证 64

3.6 银行卡号验证 65

3.6.1 银行卡号验证 65

3.6.2 信用卡卡号验证 65

3.6.3 中国建设银行卡号验证 66

3.6.4 中国工商银行卡号验证 66

3.6.5 中国农业银行卡号验证 66

第4章 字符串验证 67

4.1 英文单词验证 67

4.1.1 小写单词验证 67

4.1.2 大写英文单词验证 68

4.1.3 英文单词的分隔符验证 69

4.1.4 不包含验证 71

4.1.5 具有重复特征的英文单词验证 74

4.2 文件名称和文件路径验证 76

4.2.1 通配符 76

4.2.2 指定文件扩展名的验证 76

4.2.3 指定文件名的验证 77

4.2.4 包含指定字符串的文件全名验证 78

4.2.5 排除两端存在空白字符的文件全名验证 79

4.2.6 文件路径验证 81

4.3 网络常用元素验证 82

4.3.1 电子邮件验证 82

4.3.2 主机名称验证 83

4.3.3 HTTP地址验证 85

4.3.4 FTP地址验证 86

4.4 非单词字符串验证 86

4.4.1 英文标点符号验证 87

4.4.2 中文标点符号验证 87

4.4.3 中文文本验证 88

4.4.4 特殊字符验证 88

4.4.5 密码验证 89

4.4.6 字符表的分类 93

第5章 数字和字符混合验证 95

5.1 日期和时间验证 95

5.1.1 年验证 95

5.1.2 月验证 96

5.1.3 日验证 97

5.1.4 年月日格式的日期验证 98

5.1.5 24小时制时分秒格式的时间验证 99

5.1.6 12小时制时分秒格式的时间验证 100

5.1.7 带毫秒的时间验证 102

5.1.8 长格式的日期和时间验证 103

5.2 通用车牌号码验证 104

5.3 数学表达式验证 106

5.3.1 操作数验证 106

5.3.2 操作符验证 107

5.3.3 简单数学表达式验证 107

5.3.4 只含操作数和操作符的数学表达式验证 108

5.3.5 含小括号的数学表达式验证 109

5.4 编码规范验证 111

5.4.1 类名称验证 111

5.4.2 声明变量表达式验证 112

5.4.3 函数名称验证 112

5.4.4 声明函数表达式验证 113

第6章 验证和处理HTML元素 117

6.1 HTML元素验证基础 117

6.1.1 HTML标记验证 117

6.1.2 非封闭HTML标记验证 119

6.1.3 封闭HTML标记验证 119

6.1.4 属性赋值表达式验证 120

6.1.5 HTML中的注释验证 124

6.1.6 HTML中的脚本代码块验证 125

6.2 非封闭的HTML元素验证 126

6.3 封闭的HTML元素验证 127

6.4  br 元素验证 128

6.5  hr 元素验证 130

6.6  a 元素验证 133

6.7  input 元素验证 137

6.8 处理HTML元素 139

6.8.1 提取HTML标记 139

6.8.2 提取HTML标记之间的内容 140

6.8.3 提取URL 141

6.8.4 提取图像的URL 142

6.8.5 提取HTML页面的标题 142 第7章 C#常用数据类型检查与转换 147

7.1 数值数据类型检查与转换 147

7.1.1 整数检查 147

7.1.2 实数检查 149

7.1.3 整数和字符串之间的转换 150

7.1.4 浮点数和字符串之间的转换 151

7.2 布尔数据类型检查与转换 153

7.2.1 布尔值检查 153

7.2.2 布尔值和字符串之间的转换 153

7.3 时间数据类型检查与转换 154

7.3.1 时间数据类型检查 154

7.3.2 时间和字符串之间的转换 155

7.4 数据类型检查与转换应用实例 156

第8章 字符串处理 158

8.1 不变字符串String处理 158

8.1.1 String类和对象 158

8.1.2 插入字符串 159

8.1.3 删除字符串 160

8.1.4 替换字符串 160

8.1.5 分割字符串 161

8.1.6 填充字符串 161

8.1.7 比较字符串 162

8.1.8 连接字符串 163

8.1.9 处理字符串中的空白 165

8.1.10 转换字符串大小写 165

8.1.11 匹配和检索字符串 166

8.1.12 获取子字符串 168

8.1.13 格式化字符串 169

8.1.14 编码字符串 169

8.1.15 不可变字符串String处理的应用 170

8.2 可变字符串StringBuilder处理 172

8.2.1 StringBuilder类和对象 172

8.2.2 追加字符串 172

8.2.3 插入字符串 174

8.2.4 删除字符串 176

8.2.5 替换字符串 176

8.2.6 复制字符串 177

8.2.7 处理字符串容量 178

8.2.8 可变字符串StringBuilder处理的应用 179

第9章 .NET框架中正则表达式的应用 181

9.1 .NET框架中的正则表达式类库 181

9.1.1 System.Text.RegularExpressions名字空间 181

9.1.2 正则表达式类Regex 182

9.1.3 正则表达式选项 183

9.1.4 检查是否匹配表达式 183

9.1.5 匹配单个匹配项 185

9.1.6 匹配多个匹配项 186

9.1.7 替换 188

9.1.8 使用委托MatchEvaluator处理匹配结果 189

9.1.9 获取分组名称 190

9.1.10 分割表达式 190

9.2 使用正则表达式类Regex处理字符串 191

9.2.1 只包含数字验证 191

9.2.2 整数验证 191

9.2.3 实数验证 192

9.2.4 电话号码验证 192

9.2.5 邮政编码验证 192

9.2.6 身份证号码验证 192

9.2.7 银行卡号验证 193

9.2.8 日期和时间验证 193

9.2.9 车牌号码验证 193

9.2.10 IP地址验证 194

9.2.11 电子邮件验证 194

9.2.12 URL验证 194

9.2.13 提取网页标题 194

9.2.14 提取网页中的HTTP地址 196

9.2.15 提取网页中的图像地址 197

第10章 数据验证 199

10.1 验证概述 199

10.2 非空验证 201

10.2.1 无初始值的非空验证 201

10.2.2 指定初始值的验证 202

10.3 范围验证 203

10.3.1 整数范围验证 203

10.3.2 字母范围验证 204

10.3.3 日期范围验证 205

10.4 比较验证 206

10.4.1 两个控件内容的比较验证 206

10.4.2 指定的值和控件内容的比较验证 207

10.4.3 检查控件内容的数据类型 208

10.5 正则表达式验证 209

10.5.1 整数验证 209

10.5.2 数值验证 210

10.5.3 电话号码验证 211

10.5.4 身份证号码验证 212

10.5.5 日期和时间验证 213

10.5.6 电子邮件验证 214

10.5.7 URL验证 215

10.6 自定义验证 217

10.6.1 自定义服务器端验证 217

10.6.2 自定义客户端验证 218

10.7 显示验证摘要 219

10.7.1 在网页上显示验证摘要 220

10.7.2 在对话框上显示验证摘要 220 第11章 ASP数据类型及其转换 225

11.1 VBScript数据类型 225

11.2 VBScript数据类型判断 226

11.2.1 判断变量是否为数组 226

11.2.2 判断变量是否为日期 227

11.2.3 判断变量是否为空 228

11.2.4 判断变量是否为空值 228

11.2.5 判断变量是否为数值 229

11.2.6 判断变量是否为对象 230

11.2.7 获取变量的子类型 231

11.2.8 获取变量的类型信息 231

第12章 ASP字符串处理 233

12.1 字符串截取、组合 233

12.1.1 获取字符串长度 233

12.1.2 正向截取字符串 234

12.1.3 反向截取字符串 234

12.1.4 从中截取字符串 235

12.1.5 删除字符串前导空格 236

12.1.6 删除字符串后导空格 236

12.1.7 删除字符串前后导空格 237

12.1.8 将数组元素连接为字符串 238

12.1.9 切分字符串 238

12.2 字符串查找、替换 239

12.2.1 正向查找字符串 239

12.2.2 反向查找字符串 241

12.2.3 字符串替换 242

12.3 字符串转化 243

12.3.1 字符串小写转化 243

12.3.2 字符串大写转化 244

12.3.3 字符串倒序排列 245

12.3.4 构造指定元素的字符串 246

12.3.5 构造空格字符串 247

第13章 ASP中正则表达式的应用 248

13.1 正则表达式对象RegExp概述 248

13.1.1 创建正则表达式对象 248

13.1.2 指定正则表达式 248

13.1.3 进行正则匹配检验 249

13.2 提高匹配效率 250

13.2.1 设置匹配范围 250

13.2.2 指定忽略大小写 250

13.2.3 进行正则匹配替换 251

13.3 匹配集合Matches 252

13.3.1 获取Matches集合 252

13.3.2 Matches集合与Match对象 253 第14章 PHP数据类型及其转换 259

14.1 PHP常见数据类型 259

14.1.1 布尔型 259

14.1.2 NULL型 260

14.1.3 整型 260

14.1.4 浮点型 260

14.1.5 字符串 260

14.1.6 数组 262

14.1.7 对象 263

14.2 类型转换 264

14.2.1 变量类型变化 264

14.2.2 强制类型转换 266

14.2.3 字符串转换 268

14.2.4 数值转换 269

14.2.5 数组转换 269

第15章 PHP字符串处理 270

15.1 字符串分析 270

15.1.1 访问字符串中的字符 270

15.1.2 处理子字符串 271

15.1.3 分割字符串 273

15.2 字符串的整理 275

15.2.1 删除字符串的空白 275

15.2.2 字符串的填充 276

15.2.3 字符串大小写的转换 277

15.2.4 字符串的反转 278

15.3 字符串的比较 278

15.3.1 按ASCII码顺序比较 278

15.3.2 按“自然排序”法比较 280

15.3.3 按相似性比较 281

15.4 字符串的查找和替换 282

15.4.1 查找字符串 282

15.4.2 替换字符串 283

15.5 字符串的格式化 286

15.5.1 格式化数字 286

15.5.2 格式化字符串 286

15.6 处理HTML和URL 288

15.6.1 HTML实体的处理 288

15.6.2 HTML标签的清理 290

15.6.3 URL字符串的解析 291

15.6.4 URL编码处理 293

15.6.5 查询字符串的构造 293

第16章 PHP中正则表达式的应用 295

16.1 POSIX扩展库正则表达式函数 295

16.1.1 模式匹配 295

16.1.2 模式替换 297

16.1.3 模式分割 297

16.2 PCRE库的正则表达式函数 298

16.2.1 进行正则表达式匹配 298

16.2.2 取得正则表达式的全部匹配 299

16.2.3 返回与模式匹配的数组单元 300

16.2.4 正则表达式的替换 300

16.2.5 正则表达式的拆分 301

16.3 PHP与正则表达式的综合应用 302

16.3.1 表单验证 302

16.3.2 UBB代码 306

16.3.3 分析Apache日志文件 310 第17章 JSP中数据类型及其转化 317

17.1 JSP中的常用数据类型 317

17.1.1 整数类型 317

17.1.2 浮点类型 320

17.1.3 字符类型 321

17.1.4 布尔类型 322

17.1.5 字符串类型 323

17.2 JSP中数据类型的转换 325

17.2.1 自动类型转换 325

17.2.2 强制类型转换 326

17.3 JSP中字符串数据的处理 327

17.3.1 字符串与其他类型数据的转换 327

17.3.2 字符串的分析 329

17.3.3 字符串的查找与替换 330

17.3.4 字符串数据的整理 332

17.3.5 字符串的比较 333

17.3.6 字符串的连接 334

17.3.7 字符串的格式化 335

第18章 JSP中正则表达式应用 337

18.1 JSP中的正则表达式函数 337

18.1.1 Pattern类 337

18.1.2 Matcher类 339

18.1.3 正则表达式常用的4种功能 342

18.2 JSP中正则表达式的常见应用示例 346

18.2.1 电子邮件地址的校验 346

18.2.2 URL地址的校验 348

18.2.3 电话号码的校验 349 第19章 JavaScript数据类型及其转换 353

19.1 JavaScript数据类型 353

19.1.1 数字类型 353

19.1.2 字符串类型 354

19.1.3 布尔值类型 355

19.2 数据类型转换 356

19.2.1 基本数据类型转换 356

19.2.2 将字符串转换为整数 356

19.2.3 将字符串转换为浮点数 356

第20章 JavaScript字符串和数组 357

20.1 字符串格式处理 357

20.1.1 获取字符串的长度 357

20.1.2 根据指定的Unicode编码返回一个字符串 358

20.1.3 比较两个字符串的大小 358

20.1.4 将字符串分割并存储到数组中 359

20.1.5 将字符串转换为小写格式 360

20.1.6 将字符串转换为大写格式 360

20.2 字符串截取、组合 361

20.2.1 返回字符串中指定位置处的字符 361

20.2.2 获取指定位置字符的Unicode编码 362

20.2.3 将一个或多个字符串连接到当前字符串的末尾 364

20.2.4 从字符串中提取子串(1) 364

20.2.5 从字符串中提取子串(2) 365

20.2.6 从字符串中提取子串(3) 366

20.3 字符串查找、替换 367

20.3.1 获取指定字符(串)第一次在字符串中出现的位置 367

20.3.2 获取指定字符(串)最后一次在字符串中出现的位置 368

20.3.3 替换字符串中指定的内容 369

20.4 字符串HTML格式化 370

20.4.1 在字符串两端加入锚点标志 370

20.4.2 在指定字符串的两端加上大字体标志 370

20.4.3 在字符串的两端加上粗体标志 371

20.4.4 在字符串两端加入斜体标签 371

20.4.5 在字符串两端加上固定宽度字体标记 372

20.4.6 设置字符串输出时的前景色 373

20.4.7 设置字符串输出时的字体大小 374

20.4.8 在字符串上加入超级链接 375

20.4.9 在字符串两端加入小字体标记 375

20.4.10 在字符串两端加入下划线标记 376

20.4.11 在字符串两端加入下标标签 377

20.4.12 在字符串两端加入上标标签 378

20.5 Array对象的方法 378

20.5.1 连接其他数组到当前数组末尾 378

20.5.2 将数组元素连接为字符串 379

20.5.3 删除数组中的最后一个元素 380

20.5.4 将指定的数据添加到数组中 380

20.5.5 反序排列数组中的元素 381

20.5.6 删除数组中的第一个元素 382

20.5.7 获取数组中的一部分数据 382

20.5.8 对数组中的元素进行排序 383

20.5.9 删除或替换数组中的部分数据 384

20.5.10 在数组前面插入数据 385

20.5.11 返回一个包含数组中全部数据的字符串 386

第21章 JavaScript中正则表达式的应用 387

21.1 应用正则表达式对象RegExp 387

21.1.1 创建正则表达式 387

21.1.2 判断字符串中是否存在匹配内容 388

21.1.3 对字符串进行匹配检测 389

21.1.4 编译正则表达式 389

21.1.5 替换字符串中的指定内容 390

21.2 匹配结果处理 391

21.2.1 获取字符串中所有的匹配信息 391

21.2.2 获取第一次匹配的起始位置(1) 392

21.2.3 获取第一次匹配的起始位置(2) 393

21.2.4 获取子匹配的结果 394

21.2.5 获取与正则表达式进行匹配检测的字符串 395

21.2.6 获取匹配内容的最后一个索引位置 395

21.2.7 获取最近一次匹配的内容 396

21.2.8 获取最近一次匹配的最后一个子匹配 397

21.2.9 获取匹配内容左侧的字符信息 397

21.2.10 获取匹配内容右侧的字符信息 398

《精通正则表达式第三版》pdf下载在线阅读全文,求百度网盘云资源

《精通正则表达式第三版》百度网盘pdf最新全集下载:

链接:

?pwd=sxdv 提取码:sxdv

简介:《精通正则表达式(第3版)》内容简介:随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。《精通正则表达式(第3版)》是讲解正则表达式的经典之作。

《精通正则表达式(第3版)》主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在Perl、Java、.NET、PHP中的用法。《精通正则表达式(第3版)》自第1版开始着力于教会读者“以正则表达式来思考”,来让读者真正“精通”正则表达式。该版对PHP的相关内容、Javal.5和Javal.6的新特性作了可观的扩充讲解。任何有机会仲用正则表达式的读者都会从中获益匪浅。-精通正则表达式

精通正则表达式怎么样

正则表达式非常强大,在各种语言都有相关的包或库。看完了前五章已经对我大有帮助!翻译也不错,读起来顺畅,内容包括了从入门到精通,后面几章主要是分语言来讲解正......