RegExp类型于String类型简介

递归终结者
• 阅读 1728

RegExp类型

概述

  • 正则表达式时什么

正则表达式(Regular Expression):由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则的表达式。
正则表达式常用于在一段文本中搜索,匹配或替换特定形式的文本。如:词语出现频率统计,验证字符串是否符合邮箱格式,屏蔽一篇帖子中限制性的词语等

  • 创建正则表达式

JavaScript中没有正则表达式数据类型,创建正则表达式的语句如下:
var expression =/pattern/attributes;
pattern参数:被称为模式,可以时任何简单或复杂的正则表达式,包含字符类,限定符,分组,向前查找已经反向应用。
attribures参数:被称为修饰符,用于表明正则表达式的行为。
##符号

  • 直接量字符

正则表达式中的所有字母和数字都是按照字面含义进行匹匹厄的。JavaScript正则表达式语法也是支持非字母的字符匹配,这些字符需要通过反斜线()作为前缀进行转义。
O 匹配NULL字符,不要再这后面跟其他的小鼠
t匹配一个水平制表符。
n匹配一个换行符。
v 匹配一个垂直制表符。
R匹配一个回车符。
f匹配一个换页符。
xhh 匹配带有两位小数代码(hh)的字符
uhhh 匹配一个带有四位小数代码(hh)的字符

  • 字符类

将直接量字符单独放进方括号内就组成了字符类。一个字符类可以匹配它所包含的任意字符。由于某些字符类非常常用,JavaScript的正则表达式中,使用特殊转义字符表示他们。
[...] 一个字符集合。匹配放阔号任意字符。你可以使用破折号
(-)来制定。由于某些字符范围。对于点
(.)和信号(*)这样的特殊字符再一个字符集中没有特殊的意义。
1 一个反向的字符集。
. (小数点)匹配除了换行符(n)之外的任何单个字符
w 匹配一个单子字符(字母,数字,或者下划线)。等价于[A-Za-z0-9]
W匹配一个非单字字符。
s匹配一个空白字符,包括空格,制表符,换页符和换行符。
S匹配一个非空白字符。
d匹配一个数字, 等价于【0-9】
D匹配一个非数组字符。等价于2;

  • 重复

再JavaScript中的正则表达式用来描述任意多为的数字,或者描述由三个字母和一个数字构成的字符串时,可以使用字符重复的标记。
{n,m} n和m都是正整数。匹配前面的字符至少n次,做多m次。如果n或者m是0那么可以或略这个值
{n}n是一个正整数,匹配了前面一个字符刚好发生了n次。
{n}n是一个正整数,匹配了有一个正整数,匹配了前面一个字符放生了n次或者更多次。
? 匹配前面一个字符0或者1次和{0,1}有相同的效果。

  • 匹配前面一个字符1次或者多次,和{1,}有相同的效果。
  • 匹配签一个字符0或者多次。

注意:‘*’ ‘?’可以匹配0个字符,允许什么都匹配

  • 选择,分组,引用

正则表达式包括指定选择项,子表达式分组和引用前一子表达式的特殊字符。
x|y 匹配‘x’或者‘y’。
(x) 匹配“x”并且记住匹配项。这个被叫做捕获括号。
(?.x) 匹配“x”但是不记住匹配项。这种被叫做非捕获括号。
n 是一个正整数,一个返回引用到最后一个于有n插入的正值表达式(counting left parentheses)匹配的副字符串。

  • 指定匹配位置

正则表达式中的多个元素才能够匹配字符串的一个字符,这些元素称之为正则表达式的锚。因为他们将模式定位在搜索字符串的特定位置上。
^ 匹配输入的开始 。如果多行标识被设置为true,同时匹配换行后紧跟的字符
$ 匹配输入的结束,如果多行标识被设置为ture,同时会匹配换行之前紧跟的字符
b 匹配一个词的边界。一个词的边界就是一个词不被另外一个次跟随的位置或者不是另外一个词汇字符前边的位置。
B 匹配一个非单词的边界
X(?=y) 匹配‘x’仅仅当‘x’后面跟着‘y’。这种叫做正向肯定查找。
x(?!y) 匹配‘x’仅仅当‘x’后面不跟着y,这个叫做正向否定查找。

  • 修饰符

正则表达式的修饰符,用于说明高级匹配的规则。修饰符是放在‘/’符号的后面的。JavaScript支持的三个修饰符。
i 不区分大小写
g 全局搜索
m 多行搜搜

  • 对象

创建RegExp对象
JavaScript可以通过引用类型RegExp创建正则表达式对象,语法如下:
var pattern =new RegExp(pattern,attributes);
参数:
pattern:被称之为模式,可以是任何简单或复杂的正则表达式,包含字符类,限制类,分组,向前查找以及反向引用。
attributes:被称之为修饰符,用于表明正则表达式的行为。

  • RegExp对象的属性

RegExp对象的属性如下:
global 只读 RegExp对象是否具有g修饰符。
ignorecase 只读RegExp对象是否具有i修饰符。
multiline 只读RegExp对象是否具有m修饰符。
lastindex 用于设置获取下次匹配的其实位置。
source 只读 返回模式匹配所使用的问题。
$1...$9 全局属性 指代最近一次搜索中某个子表达式匹配的问题。

  • RegExp对象的方法

RegExp对象的方法如下:
compile() 编译/重新编译正则表达式,将pattern转换为内部格式,加速执行速度。
exec() 检索字符串中指定的值。返回找到的值,并确定其位置;影响lastindex属性的值。
test() 检索字符串指定的值。返回ture 或false;影响lastindex属性的值。

Strsing类型

概述

  • 字符串是什么

String类型是于原始类型string对应的包装类型。创建String对象如下代码:
var strObject = new String ('this is string');
string 类型于String 类型之间的区别:
使用typeof运算符,string 类型返回‘string’,String类型返回'object'。
String类型提供了很多属性和方法可以使用。例如检索字符串,分割字符换行等操作

常见操作

  • 大小写转换

String对象提供如下放方法,用于大小写转换。
toUppercase() 把字符串转换为大写。
toLowercase() 把字符串转换为小写。
var =msg = 'Hello World';
var lowerMsg =msg.tolowercase();
var upperMsg =msg.toUppercase ();
console.log(msg);//Hello World
console.log(LoweMsg);//hello world
console.log(upperMsg);//HELLO WORLD

  • 获取指定位置的字符串

String对象提供如下方法。用于获取指定位置的字符。
charAr() 返回再指定位置的字符。
charCodeAt() 返回在指定的位置的字符的Unicode编码。
var str = 'HELLO WORLD';
console.log(str.charAt(2));//L
console.log(str.charCode(0));72

  • 检索字符串

String对象提供如下方法,用于检索字符串。
indexOf()返回某个指定的字符串值在字符串中首次出现的位置。
lastindexOf()从后向前字符串。
var email ='tom@163@sohu.com';
console.log(email.indexOf('tom'));//0
console.log(email.indexOf('@',5))//7
console.log(email.lastIndexOf('@'))//7
console.log(smail.lastIndexOf('@',5))//3
console.log(email.indexOf('Mary'));/-1
截取子字符串
String对象提供如下方法,用于截取子字符串。
slice() 提取字符串的片段,并在新的字符串中返回被提取的部分。
substr() 从其实索引号提取字符串中指定书目的字符。
substring() 提取字符串中的两个指定的索引号之间的字符。
var msg = 'abc一二三';
console.log(msg.slice(2,4));//c一
console.log(msg.substring(2,4))//c一
console.log(msg.substr(2,1))//c
console.log(msg.slice(-3,-2));//一

  • 分隔字符串

string对象提供如下方法,用于分隔字符串。
split() 把字符串分割为字符串数组。
var str ='1,2,3,4';
str,split('');//['1','2','3','4,'];
str.split('',3);//['1','2','3','4'];

  • 连接字符串

String对象提供了如下方法,用于连接字符串。
concat() 连接两个或者更多字符串,并返回新的字符串。
var s1 ='AA';
var s2= s1.concat('BB','CC',55);
console.log(s1);AA
console.log(s2);//AABBCC55

模式匹配

  • 修饰符

模式匹配中可以使用如下三种属性修饰符:
i ignorecase,执行对大小写不敏感的匹配。
g global, 执行全局匹配(查找所有匹配而不是在第一次匹配之后停止)。
m multiline,允许执行多行匹配。

  • 替换子字符串

String对象提供如下方法,用于替换子字符串。
replce()在字符串中查找匹配的子串,并替换于正则表达式匹配的字串。
var = data =Microsoft is a big company ,microsoft's color is red and has MICROSOFT logo lick microsoft';
console.log (data.replace('microsoft','oracle'));
console.log(data.replace(/microsoft/,'oracle'));
console.log(data.replace(/microsoft/i,oracle));
console.log(data.replace(/microsoft/ig,oracle));

  • 匹配字符串

String对象提供了如下方法,用于匹配字符串。
match() 查找找到一个或多个正则表达式的匹配。

var = data =Microsoft is a big company ,microsoft's color is red and has MICROSOFT logo lick microsoft';
console.log(data.match('microsoft'))
console.log(data.match(/microsoft/));
console.log(data.match(/microsoft/i);
console.log(data.match(/microsoft/ig));

  • 查找字符串

String对象提供如下方法,用于查找字符串
search 查找于正则表达式向匹配的值。
var = data =Microsoft is a big company ,microsoft's color is red and has MICROSOFT logo lick microsoft';
console.log(data.search)(/'microsoft'/);
console.log(data.search)(/'microsoft'i)/;
console.log(data.search)(/'microsoft'/ig);


  1. ...
  2. 0-9
点赞
收藏
评论区
推荐文章
半臻 半臻
3年前
Python基础11——正则表达式
19正则表达式19.1正则基础正则表达式:字符串处理工具应用场景1.html查询2.验证字符串是否符合规则re模块match方法python通过正则表达式对字符串进行匹配importre使用match方法进行匹配操作re.match()从字符串的开始位置进行匹配,匹配成功,返回match对象。匹配失败,返回Noneresre
Stella981 Stella981
3年前
Python3正则表达式
在Python中使用正则表达式Python语言通过标准库中的re模块(importre)支持正则表达式。使用match方法匹配字符串匹配字符串也就是设定一个文本模式,然后判断另外一个字符串是否符合这个文本模式。importre
Wesley13 Wesley13
3年前
MYSQL正则表达式
MySQL中使用REGEXP操作符来进行正则表达式匹配。下表中的正则模式可应用于REGEXP操作符中。模式描述^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配'\\n'或'\\r'之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp对象的Mul
可莉 可莉
3年前
20165313 《Java程序设计》第六周学习总结
教材学习总结一点浅见,不足之处还请谅解。正则表达式:正则表达式是一个String对象的字符序列,该字符序列中含有具有特殊意义的字符,这些特殊字符称作正则表达式的元字符。链表:由若干个称作结点的对象组成的一种数据结构,用于动态的减少或增加数据项。String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为f
Stella981 Stella981
3年前
20165313 《Java程序设计》第六周学习总结
教材学习总结一点浅见,不足之处还请谅解。正则表达式:正则表达式是一个String对象的字符序列,该字符序列中含有具有特殊意义的字符,这些特殊字符称作正则表达式的元字符。链表:由若干个称作结点的对象组成的一种数据结构,用于动态的减少或增加数据项。String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为f
Stella981 Stella981
3年前
Regex 正则表达式入门
!在这里插入图片描述(https://imgblog.csdnimg.cn/20200502170142100.jpg?pic_center)0,什么是正则表达式正则表达式(RegularExpression简写为Regex),又称为规则表达式,它是一种强大的文本匹配模式,其用于在字符串中查找匹配符
Stella981 Stella981
3年前
Linux文本处理常用命令
1.正则表达式(1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符az)以及特殊字符(称为元字符,如/、\、?等)组成。(2)基本元字符集及其含义^:只匹配行首。 如^a匹配以a开头的行abc,a2e,a12,aaa,......$:只匹配行尾。 如^a匹配以a结尾的行bca,12a,
Stella981 Stella981
3年前
JavaScript基础入门10
JavaScript基础入门10\toc\正则表达式正则表达式(regularexpression)是一个描述字符模式的对象。在JavaScript中,RegExp表示正则对象。在开发的工作当中,我们经常需要使用正则表达式强大的模式匹配、文本检索、以及替换功能。简单的说,
Wesley13 Wesley13
3年前
Java
最近处于工程尾期,抽出点时间来学习下工程中用到的知识点。1.正则表达式作用:它使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。举例:在很多文本编辑器里,正则表达式被用来检索、替换某些文字或字符串。注意:当正则表达式和字符串函数都能解决问题时,尽量使用字符串函数,这样不容易出错,最重要的一点是字符串函数比正则表达式实现性能上要好得
Stella981 Stella981
3年前
JavaScript中的正则表达式详解
摘要:javascript中的正则表达式作为相当重要的知识,本文将介绍正则表达式的相关知识和用法。正则表达式(RegularExpression)是一门简单语言的语法规范,是强大、便捷、高效的文本处理工具,它应用在一些方法中,对字符串中的信息实现查找、替换和提取操作。正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现
看不懂正则表达式?试试可视化工具吧!
1.前言是一种用来匹配字符串的强有力工具。设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串我们就认为它“匹配”了,否则该字符串就是不合法的。日常开发中常常会使用正则表达式,例如:对数据格式进行校验(判断一个字符串是否是合法的Emai
递归终结者
递归终结者
Lv1
砧杵敲残深巷月,井梧摇落故园秋。
文章
4
粉丝
0
获赞
0