正则表达式

js正则表达式

牧云@^-^@ 提交于 2019-12-22 05:13:11
正则表达式都是操作字符串的,由特殊字符与普通字符组成。 var pattern = /js/ ; var str = "I love js" var pattern = new RegExp ( 'js' , 'i' ) ; console . log ( pattern . test ( str ) ) ; console . log ( pattern . exec ( str ) ) ; 用变量创建模式 exec方法有input 就是输入的str index就是开始匹配到的索引 修饰符 . 匹配除换行符以外的所有字符 语法 个数 {2} 匹配两个 {1,2}匹配1个或者2个 {1,3} 匹配1个或者3个 {1,} 匹配至少1个 ?用法等于 {0,1} 在? * + 后面加 ? 将贪婪匹配转为非贪婪匹配 只匹配一次 选择 | 选择匹配 a | ab 匹配a或者ab 从左边先开始匹配 从上到下 分组 将ab看为一个整体 在前加 ?: ab就不会被捕获 否则会输出 abc ab 从左边括号开始捕获 abc bc c 使用\1代表之前第一个分组中的内容 不属于分组 输出: 分组的应用 前瞻性匹配 只匹配后面为script的java 只匹配后面不为script的java 首尾匹配 ^ $ 只匹配数字 单词边界 \b 通俗一点讲,如果存在字符\w和\W相邻,那么这两个字符之间就有单词边界

Java正则表达式详解

吃可爱长大的小学妹 提交于 2019-12-22 04:40:20
正则表达式的概念: 正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。 基础 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 重复 代码/语法 说明 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 字符类 想查找数字,字母或数字,空白是很简单的,因为已经有了对应这些字符集合的元字符,但是如果你想匹配没有预定义元字符的字符集合(比如元音字母a,e,i,o,u),应该怎么办? 很简单,你只需要在方括号里列出它们就行了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。 我们也可以轻松地指定一个字符范围,像[0-9]代表的含意与\d就是完全一致的:一位数字;同理[a-z0-9A-Z_]也完全等同于\w(如果只考虑英文的话)。 分枝条件 用|把不同的规则分别表达。 如:0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678

Python爬虫(二)正则表达式

回眸只為那壹抹淺笑 提交于 2019-12-22 03:25:31
一、介绍 1.概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 简单的说,通过正则表达式,我们可以从一堆杂乱无章的字符串中,得到符合某种特定规则的字符串,比如说,我们从某个网站上爬取到了很多数据,而我们只想要其中的图片,这时正则表达式就可以帮助我们从这些数据中找到图片。 2.使用正则表达式进行匹配的流程: 3.正则表达式语法规则: 二、python中的re模块 1.re 模块 使 Python 语言拥有全部的正则表达式功能,使用re的一般步骤是先将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得Match实例的匹配结果,最后使用Match实例获得信息,进行其他的操作。 # coding=utf-8 # Created by dockerchen import re # 将正则表达式编译成Pattern对象 pattern=re.compile(r'hello') # 使用Pattern匹配文本,获得匹配结果,无法匹配时将返回None match=pattern.match('hello python') # 使用Match获得分组信息 if match: print(match.group()) ### 输出结果 ##

最全的常用正则表达式大全

和自甴很熟 提交于 2019-12-22 00:42:41
一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$ 13 非负整数:^\d+$ 或 ^[1-9]\d*|0$ 14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*

《Java编程思想》第十三章 字符串

£可爱£侵袭症+ 提交于 2019-12-22 00:41:17
可以证明,字符串操作是计算机程序设计中最常见的行为。 不可变String String对象是不可变的。例如: public class Immutable{ public static String upcase(String s){ return s.toUpperCase(); } public static void main(String[] args){ String q = "howday"; print(q); String qq = upcase(q); print(qq); print(q); } } howday HOWDAY howday 当把q传给upcase()方法时,实际传递的是引用的一个拷贝。其实,每当把String对象作为方法的参数时,都会复制一份引用,而该引用指向的对象其实一直待在一个单一的物理位置上,从未动过。 重载“+”与StringBuilder 操作符+号可以用来连接String。当你为一个类编写toString方法时,如果字符串操作比较简单,那就可以信赖编译器,但是,如果要在toString的方法中使用循环,那么最好自己创建一个StringBuilder对象,用它来构造最终的结果。 无意识的递归 Java中的每个类从根本上都是继承自Object,标准容器类自然也不例外。因此容器类都有toString()方法,并且覆写了该方法

python正则表达式(7)--flag修饰符、match对象属性

烈酒焚心 提交于 2019-12-21 20:11:38
正则表达式—修饰符 正则表达式可以包含一些标志修饰符来控制匹配模式,用在正则表达式处理函数中的flag参数中,为可选参数。 (1) re.I 全写(re.IGNORECASE) 表示使匹配时,忽略大小 (2) re.M 全写(re.MULTILINE) 多行匹配,影响 ^ 和 $的行为 (3) re.S 全写(re.DOTALL) 使点(.)匹配包括换行在内的所有字符 (4) re.X 全写(re.VERBOSE) 这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。 (5) 除以上标志外还有re.L和re.U,但不常用 (6) 可以通过使用运算符“|“来指定多个标志,表示同时生效。 如: re.I | re.M被设置成I和M标志, content = 'My username is zeke999!' re.search(r'zeke\d{3}', content, re.I | re.M) Match对象的属性 (1)string 属性: 获取匹配时使用的字符串对象 >>> m = re.match(r'\d+','456abc') >>> m.string '456abc' (2)re 属性: 匹配时使用的pattern对象,也就是匹配到内容的正则表达 式对象 >>> m <_sre.SRE_Match object at 0x02C8FA68> >>> m.re

javascript 正则表达式

谁都会走 提交于 2019-12-21 19:10:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 摘要:收集一些常用的正则表达式。 正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。本贴随时会更新。 匹配中文字符的正则表达式: [ \ u4e00 -\ u9fa5 ] 匹配双字节字符(包括汉字在内): [ ^\ x00 -\ xff ] 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String . prototype . len = function (){ return this . replace ([ ^\ x00 -\ xff ] / g,"aa").length; } 匹配空行的正则表达式: \ n [ \ s | ] *\ r 匹配HTML标记的正则表达式: / <(.*)>.*< \/ \1>|<(.*) \/ > / 匹配首尾空格的正则表达式: ( ^\ s * ) | ( \ s *$ ) 应用:j avascript中没有像v bscript那样的trim函数,我们就可以利用这个表达式来实现,如下: String . prototype . trim = function () { return this . replace ( / (^\s*)|(\s*$) /g , "

js之正则表达式

和自甴很熟 提交于 2019-12-21 16:40:29
一、什么叫正则表达式? 在大部分用户输入数据模糊匹配时,页面余姚判断用户的输入是否符合规范,这是利用正则表达式就可以实现判断,即正则表达式是指定的判定标准。 二、正则表达式分类 1.关键词原文(最简单的正则) 2.字符集:规定字符串中某个字符备选字符列表 [0123456789] [0-9] 如果备选字符是连续的,可以用-省略中间的字符 (1) 每个字符集只能匹配一个字符 (2)备选字符集中至少有一个匹配上 lg:[a-zA-Z0-9]:所有的应为字母和数字 [\u4e00-\u9fa5]:一个汉字 特殊:【^652】除了652以外 3.预定义字符集 \w 一位数字字母或_ \d 一位数字 \D 除了 \d digital 数位 \s 一位空字符 看不见的字符(空格 、tab) . 一位任意字符(包含数字,字母,标点…) \ S 除了\s \W 查找非单词字符(英文字母、数字、_) \w 除了 \w(查找单词字符) 4.量词:规定符合返回的字符出现的次数用于字符的后面 (1).有明确的边界 字符集{2,3} 必须最少出现2次,最多出现3次 字符集{2,} 必须最少出现2次,多了不限制 字符集{3} 必须出现3次 (2) 没有边界的数量 字符集? 可有可无,最多一次(0次或一次) 字符集* 可有可无,多了不限制(0到多个) 至少出现一次 字符集+ 字符集[1] 匹配指定的位置

JavaScript 正则表达式

六月ゝ 毕业季﹏ 提交于 2019-12-21 15:17:56
JavaScript 正则表达式 正则表达式在很多地方都要用,java,python,C#,javascript等还有很多,但正则表达式不会受语言的影响,他遵守正则表达式语法,今天我要说的就是javascript的正则表达式的用法,和几个常用的api. 1.什么是正则表达式? 正则表达式是构成搜索模式(search pattern)的字符序列。 .当您搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容。 正则表达式可以是单字符,或者更复杂的模式。 正则表达式可用于执行所有类型的文本搜索和文本替换操作。 2.正则表达式的特点是 灵活性、逻辑性和功能性非常强; 可以迅速地用极简单的方式达到字符串的复杂控制。 对于刚接触的人来说,比较晦涩难懂。 3正则表达式修饰符 正则表达式模式 search() 和 replace()会和正则表达式一起用 search()的使用 var str = "aaaaBbbccc"; var n = str.search(/b/i); n的值会是4,而不会是5,它返回的的是这个字母在字符串中的下标,i会让这个字母不区分大小写。 replace()的使用 var str = "aaaaabbccccccc"; var res = str.replace(/BB/i, "hao"); res的值会是aaaaahaoccccccc,他会找到字符串中的bb

js常用正则表达式

你。 提交于 2019-12-21 14:16:42
js常用各种正则表达式 1.非负整数 /^\d+$/ 2.正整数 /^[0-9][1-9][0-9]$/ 3.非正整数 /^((-\d+)|(0+))$/ 4.负整数 /^-[0-9][1-9][0-9]$/ 5.整数 /^-?\d+$/ 6.非负浮点数 /^\d+(.\d+)?$/ 7.正浮点数 /^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$/ 8.非正浮点数 /^((-\d+(.\d+)?)|(0+(.0+)?))$/ 9.负浮点数 /^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$/ 10.浮点数 /^(-?\d+)(.\d+)?$/ 11.数字 /^\d+(.{1}\d+)?$/ 12.由26个英文字母组成的字符串 /^[A-Za-z]+$/ 13.由26个英文字母的大写组成的字符串 /^[A-Z]+$/ 14.由26个英文字母的小写组成的字符串 /^[a-z]+$/ 15.由数字和26个英文字母组成的字符串 /^[A-Za-z0-9]+$/ 16.由数字、26个英文字母或者下划线组成的字符串 /^\w+$/ 17.匹配所有单字节长度的字符组成的字符串 /^[\x00-\xff]