正则表达式 String中正则匹配的方法
目录
基础 常用的一些
特殊字符
非打印字符
元字符
表达式
量词
或者
创建正则表达式
实例方法
字符串中的正则方法
字符串的 match()方法
字符串的 search()
字符串的 split()方法
字符串的 replace()
字符串的 trim()方法
基础 常用的一些
特殊字符
. | 匹配除换行符 \n 之外的任何单字符。 |
^ | 匹配输入字符串的开始位置 |
$ | 匹配输入字符串的结尾位置。 |
非打印字符
\t | 匹配一个制表符。等价于 \x09 和 \cI |
\n | 匹配一个换行符。等价于 \x0a 和 \cJ。 |
\s | 匹配任何空白字符 包括指标符 换行符 。等价于 [ \f\n\r\t\v] |
\S | 匹配任何非空白字符。等价于 [^ \f\n\r\t\v。 |
\b | 单词边界即字与空格的位置 \bhello\b |
元字符
\d |
匹配一个数字字符。等价于 [0-9]。 |
\D |
匹配一个非数字字符。等价于 [^0-9]。 |
\w |
匹配字母、数字、下划线。等价于'[A-Za-z0-9_]' |
\W |
匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'。 |
\ |
将下一个字符标记为一个特殊字符、或一个原义字符 |
[^a-z] |
负值字符范围。匹配任何不在指定范围内的任意字符。 |
表达式
[xyz] |
字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。 |
[a-z] |
字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。 |
[\u4e00-\u9fef] |
中文范围 |
量词
* |
[\u4e00-\u9fef]* 匹配前面的子表达式零次或多次 |
+ |
\d+ 匹配前面的子表达式一次或多次。 |
? |
\d? 匹配前面的子表达式零次或一次。 |
{n} |
n 是一个非负整数。匹配确定的 n 次。 |
{n,m} |
m 和 n 均为非负整数,其中n <= m。 自定义量词 |
{n,} |
n 是一个非负整数。至少匹配n 次。 |
或者
| | 替换,"或"操作 |
创建正则表达式
js 中 正则表达式表现为一个对象,该对象是通过RegExp构造的
var rag = /\d/; //字面量
标志位 全局搜索后面加个 g ;不区分大小写加个 i ;多行匹配加个 m ;
实例方法
RegExp.test()验证某个字符串是否满足规则
在全局模式下 会接着上一次的接着匹配
在单行模式下 会从头开始匹配
正常模式下 是贪婪匹配 更改贪婪模式在量词后加上?
var reg = /^\d/;console.log(reg.test('123'));
RegExp.exec()得到一个真数组 第一项表示匹配结果 index是匹配开始的下标 input是匹配的完整字符串
会受到 lastIndex 的影响改变匹配开始的下标位 匹配不到返回 null
var reg = /^\d/;console.log(reg.exec('123'));["1", index: 0, input: "123", groups: undefined]0: "1"groups: undefinedindex: 0input: "123"length: 1__proto__: Array(0)
字符串中的正则方法
字符串的 match()方法
可以与正则表达式匹配 第一项表示匹配结果 index是匹配开始的下标
var reg = /^\d/;var s = '123abc';console.log(s.match(reg));["1", index: 0, input: "123abc", groups: undefined]0: "1"groups: undefinedindex: 0input: "123abc"length: 1__proto__: Array(0)
字符串的 search()
方法 返回第一次匹配到的下标
var reg = /^\d/;var s = '123abc';console.log(s.search(reg));-->0
字符串的 split()方法
分割字符串 利用正则表达式多种分割方式
var reg = /[\t\s,-]/;var s = 'asadsa,sda sdad-sdd\tsdad';console.log(s.split(reg));(5) ["asadsa", "sda", "sdad", "sdd", "sdad"]0: "asadsa"1: "sda"2: "sdad"3: "sdd"4: "sdad"length: 5__proto__: Array(0)
字符串的 replace()
方法 返回用新的子串来替换被匹配的字符串 不会改变原来字符串 要开启全局匹配
var reg = /[\s,]/g;var s = 'asadsa,sda sdad-sdd\tsdad';console.log(s.replace(reg,"'"));//-->asadsa'sda'sdad-sdd'sdadconsole.log(s.replace(/[\t\s,-]/g,","));//-->asadsa,sda,sdad,sdd,sdad
第二个参数可以是一个函数 函数的第一个参数match是匹配到的结果 把他进行大写
var reg = /[\s,]/g; //正则表达式var s = 'asadsa,sda sdad-sdd\tsdad';console.log(s.replace(/\b[a-z]/g,function(match){return match.toUpperCase(); -->Asadsa,Sda Sdad-Sdd Sdad}));
字符串的 trim()方法
去掉字符串首位空格
var reg = /[\s,]/g;var s = ' study shcool class name one abcd ';console.log(s.replace(/\s*\b[a-z]\s*/g,function(match){return match.toUpperCase().trim();//-->StudyShcoolClassNameOneAbcd}));
正则表达式 String中正则匹配的方法相关推荐
- html img正则,html中正则匹配img
1.正则匹配html中的img标签,取出img的url并进行图片文件下载: /// /// 将image标签的src属性的url替换为base64 /// /// /// 返回替换imgurl后的qu ...
- Java中删除String中空格的多种方法
在Java中,要实现删除String中的空格的方法有很多种,具体有: 1. trim() 删除字符串开头和结尾的空格,Java 1版本引入的接口,这是开发人员最常用的方法.trim移除的空白字符指的是 ...
- python正则匹配空格+数字+空格_详解Python中正则匹配TAB及空格的小技巧
详解Python中正则匹配TAB及空格的小技巧 发布时间:2020-10-15 08:38:48 来源:脚本之家 阅读:94 作者:杰瑞26 在正则中,使用.*可以匹配所有字符,其中.代表除\n外的任 ...
- java中正则匹配字符串长度_Java中使用正则表达式校验字符串
Java中使用正则表达式校验字符串 正则表达式是某一位伟大的数学家发明的,现在已经形成了一个ISO标准,这个标准和编程语言没有关系.至于具体谁发明的,怎么发明的,我也忘记了:). 正则表达式简单理解就 ...
- Python中正则匹配使用findall时的注意事项
在使用正则搜索内容时遇到一个小坑,百度搜了一下,遇到这个坑的还不少,特此记录一下. 比如说有一个字符串 "123@qq.comaaa@163.combbb@126.comasdf111@a ...
- Java中去除String中空格的多种方法
问题 首先我们先假设需要对一个字符串"hello world!"做分割,去除中间的空格,获取每一个单词的字符串数组words. 方法1 我们最简单也是最容易的方法是使用split对 ...
- Python中正则匹配与中文的问题
笔者改写了一个爬虫,来爬取补天SRC的漏洞认领页面,将单位名称.漏洞名称.漏洞危害等级爬取下来,但是在正则匹配"漏洞名称"的过程中遇到了一些麻烦. 如上图,想要把"SQL ...
- python正则_python中正则匹配
写代码时候,不管是爬虫,还是获取某些特定的资源,我们需要写正则表达式. 因为不常用,有些语法生疏.有时明明觉得自己的语法可以,可就是不行. 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之 ...
- python 正则 匹配任意字符串_python中正则匹配
写代码时候,不管是爬虫,还是获取某些特定的资源,我们需要写正则表达式. 因为不常用,有些语法生疏.有时明明觉得自己的语法可以,可就是不行. 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之 ...
最新文章
- 第10章 嵌入式linux的调试技术
- 2020-12-01 Halcon初学者知识[1] 初始界面
- 极速写作2017彻底卸载_如何将 Flash 从 Mac 和 Windows 系统中彻底卸载?
- opa847方波放大电路_电子管放大电路当中阴极电阻的作用和选择
- 梧州计算机学考查询,学考成绩查询
- Linux 进程间通讯(IPC)方式 ------- 共享内存
- oracle的安装与卸载
- QCC3020/QCC3040 TWS耳机按键切换EQ,APP切换EQ功能实现
- 计算机桌面常见故障,电脑常见故障问题以及解决办法
- Nucleus SE RTOS 初始化和启动
- 怎么压缩解压打包文件???
- Java JUI打字小游戏项目
- c语言 随机四则运算,随机四则运算 C语言
- 计算机创新创业计划2000字,创新创业论文2000字
- Springboot自动装配源码分析
- 曾国藩格言与众君共勉
- SSM框架+WebSocket实现网页聊天(Spring+SpringMVC+MyBatis+WebSocket)
- 线程实例分析---线程的综合运用(精灵线程,多线程,中断,通信)【java养成】
- ceph rbd mysql_如何在 Kubernetes 环境中搭建 MySQL(三):使用 PVC 挂接 RBD
- html隐藏m3u8文件,播放具有HTML视频标签的m3u8文件
热门文章
- Python开发 CDN查询子域名查询
- comsumer配置
- 汉诺塔怎么加计数次数c语言,C语言算汉诺塔,递归时的输出是怎么一步一步来的?如图,求大神帮忙...
- 【Office插入eps】Word插入eps出错
- 64位 window 在notepad++中添加HexEditor工具
- 5.node.js中的事件循环
- 送给前端的你,推荐几篇前端汇总文章。(来自知乎专栏)
- 小型机与PC服务器的区别(phpc)
- Class org.datanucleus.api.jdo.JDOPersistenceManagerFactory was not found
- 非线性可视化(3)混沌系统