正则表达式

寒假大数据学习笔记六

南楼画角 提交于 2020-02-05 00:10:46
  今天学习了基本的正则表达式,难度的确不小,光这么一天是绝对学不完的,我也只是浅尝辄止。   从网上找了一份关于正则表达式的符号意义: Python3 正则表达式特殊符号及用法(详细列表) ,很值得参考。其实官方文档上也有,只不过是全英文的:   其实比较常用的正则表达式从网上一搜索就可以得到,但有时候为了某些特定的需求,还是需要自己写一下正则表达式的。   那么说一下有些卡住我的正则表达式:\序号   “\序号”有两种意思:1、0和100以上(包含100)的序号代表8八进制的ASCII值;2、1到99(包括99)表示引用序号对应的子组所匹配的字符串。第一点还算好理解,练习两道题就会了,但第二点真是让我百思不得其解,琢磨可好一阵才理解意思:首先明白的一点是正则表达式中一个小括号就代表一个组,举例:在 (abc)(xyz)\1 中存在两个组,有几组小括号就有几组,现在给这些组表上序号 (abc) 就是1组, (xyz) 就是2组,最后的 \1 就是将第一组重复一遍,也就是说, abcxyzabc 就会匹配成功: 所以同理, (abc)(xyz)\2 可以匹配成功的就是 abcxyzxyz ,当然要注意的一点时,序号不可以超过组数,也就是说不可以写成 (abc)(xyz)\3 ,这样是会报错的: 好了,正则表达式的问题搞定了,那就写程序练习一下吧:由于在使用代理IP时复制IP地址

正则表达式入门

空扰寡人 提交于 2020-02-04 22:12:11
正则表达式 概述及基本使用 正则表达式:是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 举例:校验qq号码. 1:要求必须是5-15位数字 2:0不能开头 正则表达式的组成规则 规则字符在java.util.regex Pattern类中 正则表达式就是符合一定规则的字符串 常见规则 A:字符 ​ x 字符 x。举例:'a’表示字符a ​ \ 反斜线字符。 ​ \n 新行(换行)符 ​ \r 回车符 B:字符类 ​ [abc] a、b 或 c(简单类) ​ [^abc] 任何字符,除了 a、b 或 c(否定) ​ [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围) ​ [0-9] 0到9的字符都包括 C:预定义字符类 ​ . 任何字符。我的就是.字符本身,怎么表示呢? . 使用\.在Java中是\\. ​ \d 数字:[0-9] ​ \w 单词字符:[a-zA-Z_0-9] ​ 在正则表达式里面组成单词的东西必须有这些东西组成 D:边界匹配器 ​ ^ 行的开头 ​ $ 行的结尾 E:Greedy 数量词 ​ X? X,零次或一次 ​ X* X,零次或多次 ​ X+ X,一次或多次 ​ X{n} X,恰好 n 次 ​ X{n,} X,至少 n 次 ​ X{n,m} X,至少 n 次,但是不超过 m 次

Javascript正则表达式

[亡魂溺海] 提交于 2020-02-04 13:56:54
下表是元字符及其在正则表达式上下文中的行为的一个完整列表: 字 符 描 述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。例如, '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" 。 ? 等价于 {0,1} 。 { n } n 是一个非负整数。匹配确定的 n 次。例如, 'o{2}' 不能匹配 "Bob" 中的 'o' ,但是能匹配 "food" 中的两个 o 。 { n ,} n 是一个非负整数。至少匹配 n 次。例如, 'o

Python 正则表达式

依然范特西╮ 提交于 2020-02-04 12:15:36
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。 re 模块使 Python 语言拥有全部的正则表达式功能。 compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。 re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。 本章节主要介绍Python中常用的正则表达式处理函数。 re.RegexObject re.compile() 返回 RegexObject 对象。 re.MatchObject group() 返回被 RE 匹配的字符串。 正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志 正则表达式模式 模式字符串使用特殊的语法来表示一个正则表达式: 字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。 多数字母和数字前加一个反斜杠时会拥有不同的含义。 标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。 反斜杠本身需要使用反斜杠转义。 由于正则表达式通常都包含反斜杠

【正则表达式】初识正则表达式

时光怂恿深爱的人放手 提交于 2020-02-04 09:07:05
初识正则表达式 学Java介绍String类的时候说到过他的一个split()方法,老师说这个函数要传一个参数,返回一个根据参数把字符串分割成一个字符数组,其实这传入的就是一个正则表达式。 正则表达式就是用一种方式来描述一个字符串,然后用来进行匹配。比如说:我要找一个数,他可能在最前面有一个负号 -? 要表示:可能有一个负号,后面跟着一位或者多位数字: -?\d 这里注意一下关于反斜杠 " \ ",反斜杠经常是作为转义字符的存在,这里也不例外,只不过这里匹配的时候得要俩,一个用来让Java语言认识,一个用来让正则表达式认识; public class IntegerMatch { public static void main ( String [ ] args ) { System . out . println ( "-1234" . matches ( "-?\\d+" ) ) ; System . out . println ( "5678" . matches ( "-?\\d+" ) ) ; System . out . println ( "5678" . matches ( "-\\d+" ) ) ; System . out . println ( "+911" . matches ( "-?\\d+" ) ) ; System . out . println (

mysql之用正则表达式进行搜索

末鹿安然 提交于 2020-02-04 00:33:03
使用正则表达式进行搜索(regexp) 1. “.” :匹配任意一个字符 比如“.000”能匹配“1000”和“2000”。 select * from h_info where l_id regexp “.0”; 2. “|” :为搜索两个串之一(或者为这个串,或者为另一个串) select * from h_info where l_id regexp “.0|3.”; 表示检索l_id个位是0和十位是3的记录。 3.“[]”: 匹配几个字符之一 select * from h_info where l_id regexp “[123]0”; 表示检索10,20或30 4.匹配范围 [0-9] [a-z] [A-Z] 5.匹配特殊字符(转义) 正则表达式语言由具有特定含义的特殊字符构成。我们已经看到 . 、 [] 、 | 和 - 等,还有其他一些字符。为了匹配特殊字符,必须用 \\ 为前导 。 \- 表示查找 - , \\. 表示查找 . 。 6.匹配字符类 存在找出你自己经常使用的数字、所有字母字符或所有数字字母字 符等的匹配。为更方便工作,可以使用预定义的字符集,称为字符类 (character class)。表9-2列出字符类以及它们的含义。 7.匹配多个实例 比如: select * from h_info where l_id regexp “[[:digit:]]

python 正则表达式

主宰稳场 提交于 2020-02-04 00:25:27
正则 1、 匹配所有的数字[0-9] 匹配所有的字母[a-z] 匹配所有的大写字母 [A-Z] 匹配所有数字字母 [0-9a-zA-Z] 2、元字符 \d 是匹配所有数字 \w 是配置所有的数字字母下划线还有中文 \s 是匹配所有的空白符 制表符 换行符 \n 匹配回车 \t 匹配tab \D 匹配所有非数字 \W 匹配 所有非数字字母 下划线 \S 匹配所有非空白 . 匹配处了换行符之外的人任意一个字符 ^ 匹配一个字符串的开始 $ 匹配一个字符串的结束 [abc123] 匹配abc123 这几个字符 [^abc123] 匹配除了abc123 的所有字符 [^ ] 匹配非空字符 | 或得关系 例如:alex|wusi () 用来规范字符的范围 注释 :^alex|alexerer$ 这样写的话 alex1223445 也会匹配 ^(alex|alexer)$ 这样写的话 alex122344 就不会在匹配了 只匹配alex 3、 量词 {n} 匹配n 次 {n,} 匹配至少n次 {n,m} 匹配n-m 次 ? 0 或者1次 + 1-无穷大 * 0-无穷大 4、 匹配手机号 1[2-9]\d{9} 匹配任意正整数 [1-9]\d*\ 匹配任意的小数 \d+\.\d+ 匹配整数或者小数 \d+(\.\d+)? 5 、 re 正则 import re ret= re.findall('

javascript 高级 笔记整理

蓝咒 提交于 2020-02-03 22:44:11
目标 理解面向对象开发思想 掌握 JavaScript 面向对象开发相关模式 掌握在 JavaScript 中使用正则表达式 JavaScript 的组成 ECMAScript - 语法规范 变量、数据类型、类型转换、操作符 流程控制语句:判断、循环语句 数组、函数、作用域、预解析 对象、属性、方法、简单类型和复杂类型的区别 内置对象:Math、Date、Array,基本包装类型String、Number、Boolean Web APIs BOM onload页面加载事件,window顶级对象 定时器 location、history DOM 获取页面元素,注册事件 属性操作,样式操作 节点属性,节点层级 动态创建元素 事件:注册事件的方式、事件的三个阶段、事件对象 面向对象与面向过程: 面向过程就是亲力亲为,事无巨细,面面俱到,步步紧跟,有条不紊 面向对象就是找一个对象,指挥得结果 面向对象将执行者转变成指挥者 面向对象不是面向过程的替代,而是面向过程的封装 面向对象的特性: 封装性 继承性 [多态性]抽象 prototype对象 JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象。 这个对象的所有属性和方法,都会被构造函数的所拥有。 这也就意味着,我们可以把 所有对象实例需要共享的属性和方法直接定义在 prototype 对象上 。

Java编程的逻辑 (89) - 正则表达式 (中)

孤者浪人 提交于 2020-02-03 02:36:50
本系列文章经补充和完善,已修订整理成书《Java编程的逻辑》,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接 : http://item.jd.com/12299018.html 上节 介绍了正则表达式的语法,本节介绍相关的Java API。 正则表达式相关的类位于包java.util.regex下,有两个主要的类,一个是Pattern,另一个是Matcher。Pattern表示正则表达式对象,它与要处理的具体字符串无关。Matcher表示一个匹配,它将正则表达式应用于一个具体字符串,通过它对字符串进行处理。 字符串类String也是一个重要的类,我们在 29节 专门介绍过String,其中提到,它有一些方法,接受的参数不是普通的字符串,而是正则表达式。此外,正则表达式在Java中是需要先以字符串形式表示的。 下面,我们先来介绍如何表示正则表达式,然后探讨如何利用它实现一些常见的文本处理任务,包括切分、验证、查找、和替换。 表示正则表达式 转义符 '\' 正则表达式由元字符和普通字符组成,字符'\'是一个元字符,要在正则表达式中表示'\'本身,需要使用它转义,即'\\'。 在Java中,没有什么特殊的语法能直接表示正则表达式,需要用字符串表示,而在字符串中,'\'也是一个元字符,为了在字符串中表示正则表达式的'\'

正则表达式matcher.group()用法

こ雲淡風輕ζ 提交于 2020-02-03 01:18:57
String str = "Hello,World! in Java." ; Pattern pattern = Pattern . compile ( "W(or)(ld!)" ) ; Matcher matcher = pattern . matcher ( str ) ; while ( matcher . find ( ) ) { System . out . println ( "Group 0:" + matcher . group ( 0 ) ) ; //得到第0组——整个匹配 System . out . println ( "Group 1:" + matcher . group ( 1 ) ) ; //得到第一组匹配——与(or)匹配的 System . out . println ( "Group 2:" + matcher . group ( 2 ) ) ; //得到第二组匹配——与(ld!)匹配的,组也就是子表达式 System . out . println ( "Start 0:" + matcher . start ( 0 ) + " End 0:" + matcher . end ( 0 ) ) ; //总匹配的索引 System . out . println ( "Start 1:" + matcher . start ( 1 ) + "