首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

讲给前端的正则表达式(1):基本概念

如果想要匹配的是一个点 . 字符该怎么办? 反斜杠 反斜杠 / 用于将特殊字符的含义切换为普通字符。所以是可以在文本中搜索点 . 字符的,并且这个点不会被解释为特殊字符。...正如你在 ASCII 表上看到的那样,[A-z] 也将与符号[、 \、 ]、 ^、 _ 和 ` 相匹配,所以请谨慎使用 [A-Za-z],而是使用标志来忽略大小写。...如果用斜杠定义正则表达式的话,就在斜杠后添加它们。如果用 RegExp 构造函数,则将它们作为第二个参数。...最重要的标志是: i:忽略大小写 使用这个标志,搜索时不区分大小写: /dog/i.test('dog'); // true new RegExp('dog', 'i').test('DoG'); 就这么简单...它会返回一个新字符串,如果字符串的内容能够与模式匹配,则会替换其内容。你可以使用字符串或正则表达式之类的模式。但棘手的是如果你用字符串去执行这个操作,则无法替换所有出现的模式,只能替换一个模式。

1.3K10

JavaScript正则表达式的两种写法

JavaScript正则表达式可以使用正则表达式的特殊符号(/ /)来声明,也可以采用正则表达式对象(RegExp)来声明。...1、使用正则表达式符号 正则表达式符号为”/ /”,即为2个斜杠,中间为匹配规则。JavaScript中类似的特殊符号还有数组“[]”, 对象“{}”。...        function test2(){             var str = ‘121%llskljfls.jpg’;             var reg = new RegExp...()方式,不能再添加斜杠(“/”)’);             } 使用i参数,则忽略大小写。...竖线为或选择符,意即括号中的模式匹配上任何一种皆可。 2、使用正则表达式对象 使用正则表达式对象时,匹配规则不再需要“/ /”(2个斜杠),如果加上,结果就不对了。

35420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScript 正则表达式全面总结

    大家好,又见面了,我是你们的朋友全栈君。 如果您发现错误,请一定要告诉我,拯救一个辣鸡(但很帅)的少年就靠您了! 本文适合有 JavaScript 基础 && 面向搜索引擎书写正则的人群。...直接量语法创建 正则表达式直接量定义为包含在一对斜杠(/)之间的字符。 2. 构造函创建 可以通过 RegExp() 构造函数可以实现动态创建正则表达式。RegExp 的第二个参数是可选的。...直接量字符 正则表达式中所有字母和数字都是按照字面含义进行匹配的,其他非字母的字符需要通过反斜杠(\)作为前缀进行转移,如 \n 匹配换行符。...没有匹配子串返回 -1 。 如果参数不是正则表达式,将会通过 RegExp 构造函数转换成正则表达式。它会忽略正则的修饰符 g。...注意即使两次匹配的不是同一个字符串,lastIndex 还是会连续生效的。

    98140

    JavaScript正则表达式的模式匹配教程,并且附带充足的实战代码

    pattern = /javascript/ 这样双正斜杠包裹一个匹配模式的写法就是RegExp直接量,这种方法其实是new RegExp()的一种能语法糖的写法。...其实 \b 的作用就是将匹配的点放到一个字符串前面(\b放前面)或后面(\b放后面)的 [^a-zA-Z0-9] 处,也可以理解为 \b 可以替换那些特殊字符,但 \b 不会作为匹配的内容。...=p)表示接下来的字符要与p匹配,但p不会作为内容返回 先来看一个例子 let pattern = /java(script)?(?...但这个例子中的 str 里, java后面紧跟着的就是script,所以匹配失败。那么成功的例子就是这样的 let pattern = /java(?!...(pattern) // 返回 ['JavaScript'] 匹配成功 我们可以看到,匹配时忽略了大小写的影响,仍然匹配成功了 字符 g 我们之前匹配字符串时,都是匹配到第一个就结束匹配返回内容

    1.3K20

    59分钟学会正则表达式

    使用反斜杠“\”可以忽略元字符,使得元字符的功能与普通字符一样。所以,正则表达式 c.t 表示“找到字母c,然后是一个句号(“.”)...[1-9]与[123456789]相同,都是匹配任意一个非零数字。 练习 使用目前我们已经讲解的正则表达式相关知识,在字典中匹配找到含有最多连续元音的单词,同时找到含有最多连续辅音的单词。...重复次数的范围可以是开区间 a{1,}表示匹配一个或一个以上的连续字符a。依然是匹配最长字符串。当找到第一个a之后,正则表达式会尝试匹配尽量多个的连续字母a。 .{0,}表示匹配任意内容。...匹配一个反斜杠或者一个左边的方括号或者一个右边的方括号, var regExp = /[\[]]/; var regExp = /\s/; 和 var regExp = /[ \t\r\n]/; 是等价的...* + | ( ) ^ $ 在字符类中使用元字符: [ ] \ - ^ 使用反斜杠可以忽略元字符: \ 致谢 正则表达式非常常用而且非常有用。

    1.6K60

    javascript正则表达式 教程_js正则表达式匹配字符串

    pattern = /javascript/ 这样双正斜杠包裹一个匹配模式的写法就是RegExp直接量,这种方法其实是new RegExp()的一种能语法糖的写法。...其实 \b 的作用就是将匹配的点放到一个字符串前面(\b放前面)或后面(\b放后面)的 [^a-zA-Z0-9] 处,也可以理解为 \b 可以替换那些特殊字符,但 \b 不会作为匹配的内容。...=p)表示接下来的字符要与p匹配,但p不会作为内容返回 先来看一个例子 let pattern = /java(script)?(?...但这个例子中的 str 里, java后面紧跟着的就是script,所以匹配失败。那么成功的例子就是这样的 let pattern = /java(?!...(pattern) // 返回 ['JavaScript'] 匹配成功 我们可以看到,匹配时忽略了大小写的影响,仍然匹配成功了 字符 g 我们之前匹配字符串时,都是匹配到第一个就结束匹配返回内容

    3.4K10

    正则表达式必知必会 - 匹配单个字符

    中的 . 匹配任意单个字符。         在同一个正则表达式里允许使用多个 . 字符,它们既可以共同出现(一个接着一个——..将匹配连续的任意两个字符),也可以分别出现在模式的不同位置。...字符本身而不是它在正则表达式里的特殊含义。为此必须在 . 的前面加上一个\(反斜杠)字符来对它进行转义。\ 是一个元字符(metacharacter,表示“这个字符有特殊含义,代表的不是字符本身”)。...表示匹配任意单个字符,\. 表示匹配 . 字符本身。在 MySQL 中,转义正则表达式的特殊字符需要使用两个反斜杠 \\。...用两个反斜杠转义,第一个 \ 告诉 MySQL 后面的一个 \ 是普通字符,而第二个 \ 告诉正则表达式引擎其后的 . 为普通文本字符,所以结果只匹配了 sales.xls。...相应的转义序列是两个连续的反斜杠字符 \\。

    27330

    正则表达式必知必会 - 使用元字符

    在元字符的前面加上一个反斜杠就可以对它进行转义。因此,\. 匹配.,\[ 匹配[。每个元字符都可以通过在前面加上一个反斜杠的方法来转义,这样匹配的就是该字符本身而不是其特殊的元字符含义。...例子中的文本是一个包含反斜杠字符的文件路径(用于 Windows 系统)。假设想在一个 Linux 系统上使用这个路径,也就是说,需要把这个路径里的反斜杠字符 \ 全部替换为斜杠字符 /。...因此,搜索 \n\n 将匹配两个连续的行尾标记,而这正是两条记录之间的空白行。        ...一般来说,需要匹配 \r、\n 和 \t(制表符)等空白字符的情况比较多见,而需要匹配其他空白字符的情况要相对少一些。. 和 [ 是元字符,但前提是没有对它们进行转义。...在这种情况下,匹配到的文本不区分字母大小写,但特殊字符(比如 \d)会区分。 2.

    28850

    JavaScript 编程精解 中文第三版 九、正则表达式

    使用RegExp构造器时,需要将模式书写成普通的字符串,因此反斜杠的使用规则与往常相同。 第二种写法将模式写在斜杠之间,处理反斜杠的方式与第一种方法略有差别。...首先,由于斜杠会结束整个模式,因此模式中包含斜杠时,需在斜杠前加上反斜杠。此外,如果反斜杠不是特殊字符代码(比如\n)的一部分,则会保留反斜杠,不像字符串中会将其忽略,也不会改变模式的含义。...,而且你可以连续使用多个管道符号,表示从多于两个模式中选择一个备选项进行匹配。...由于你只有在程序运行时才知道姓名,因此你无法使用基于斜杠的记法。 但你可以构建一个字符串,并使用RegExp构造器根据该字符串构造正则表达式对象。 这里给出一个示例。...由于我们创建正则表达式时使用的是普通字符串,而非使用斜杠包围的正则表达式,因此如果想创建\b边界,我们不得不使用两个反斜杠。RegExp构造器的第二个参数包含了正则表达式选项。

    1.7K60

    Linux命令(32)——grep命令

    动作有:read(默认)像普通文件一样读取目录;skip:忽略指定目录;recurse:递归读取指定目录下的所有文件,此操作等同于-r选项。...-e 匹配模式>:设置查找文件内容的匹配模式。 -E,--extended-regexp:使用扩展正则表达式解释匹配模式。...-G,--basic-regexp:使用基本正则表达式解释匹配模式。 -h,--no-filename:查询多文件时不显示文件名。...-i,--ignore-case:忽略字符大小写。 -I:忽略二进制文件。 -l,--files-with-matches:只输出包含匹配字符的文件名。...grep -n 'test' aa bb cc (5)打印aa中包含有至少5个连续小写字符的字符串的所有行 grep '[a-z]\{5\}' aa 注意,这里必须使用双引号或者单引号将查找pattern

    4.4K30

    .gitignore 不生效问题

    所以想使用 .gitignore 文件忽略这些文件夹。 然后在 .gitignore 添加忽略后,还是不生效。如下: ?...以#开头的行用作注释。("\") 对于以哈希开头的模式,请在第一个哈希之前放置反斜杠(“ \”)。 除非使用反斜杠(“ \”)引号,否则将忽略尾随空格。 可选前缀“ !”..." ** " 模式中与完整路径名匹配的两个连续星号(“ ”)可能具有特殊含义: 前导“ **”后跟斜杠表示在所有目录中均匹配。...尾部的“ /”与内部的所有内容匹配。例如,“ abc/”将目录“ abc” 内的所有文件(相对于.gitignore文件位置)以无限深度进行匹配。 斜杠后跟两个连续的星号,然后斜杠匹配零个或多个目录。...例如,“ a/**/b”匹配“ a/b”,“ a/x/b”,“ a/x/y/b”等。 其他连续的星号被视为常规星号,并将根据之前的规则进行匹配。

    3.6K21

    MySQL WHERE子句内使用正则表达式搜索

    正则表达式之初见 下面的语法检索列prod_name包含文本1000的所有行 SELECT * FROM products WHERE prod_name REGEXP '1000'; 使用正则表达式语言中一个特殊的字符...LIKE匹配整个列。如果被匹配的文本在列值中未出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。...而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。REGEXP也能匹配整个列(和LIKE相同的作用)使用^和$定位符即可。...多数正则表达式实现使用单个反斜杠转义特殊字符,以便能使用这些字符本身。但MySQL要求两个反斜杠(MySQL自己解释一个,正则表达式库解释另一个)。...正则表达式之定位元字符 ^表示文本的开始 $表示文本的结尾 [[:的开始 [[:>:]]表示词的结尾 例如匹配文本以1开头的文本

    1.3K50

    1、正则表达式

    3、正则表达式的定义 JS中定义正则表达式有两种方式,一种是通过构造函数,一种是通过/…/,也就是两个斜杠。...(‘study’); //表示含有study,(默认区分大小写) var reg = new RegExp('study', 'ig'); // 其中i 表示忽略大小写,g 表示全局匹配 3.2、...该属性可读写,但是只在进行连续搜索时有意义,详细介绍请看后文。 RegExp.prototype.source //返回正则表达式的字符串形式(不包括反斜杠),该属性只读。.../将匹配b,ba ,相当于{0,1} x|y // 匹配x或y ,/a|b/ 将匹配只要出现a或者b的字符串,不含a与b的不匹配 {n} // 精确匹配n次 ,/d{4}/ 将匹配,出现连续...4个d的字符串 {n,} // 匹配n次以上 ,/d{4,}/将匹配,出现连续4个及4个以上的d的字符串 {n,m} // 匹配n-m次,/d{4,8}/将匹配,出现连续4到8个d的字符串

    52720

    深入剖析vscode工具函数(八)解密复杂正则表达式

    匹配双引号内的字符串:**"[^"\\]*(?:\\.[^"\\]*)*"** **"**:匹配双引号; **[^"\\]***:匹配非双引号和非反斜杠的字符零次或多次; **(?....[^"\\]*)***:非捕获分组,匹配转义字符后的任意字符,以及随后的非双引号和非反斜杠的字符零次或多次;这个分组可以重复零次或多次; **"**:匹配双引号。...**:非捕获分组,匹配星号或斜杠后的非星号和非斜杠的字符零次或多次;这个分组可以重复零次或多次,但尽量少重复(懒惰匹配); **\*\/**:匹配 */。...匹配行注释:**\/{2,}.*?(?:(?:\r?\n)|$)** **\/{2,}**:匹配两个或更多的斜杠; **.*?**:匹配任意字符零次或多次,但尽量少重复(懒惰匹配); (?:(?...以下是 stripComments 函数的逐行解析: 使用 content.replace(regexp, ...) 方法查找并替换 content 中与正则表达式 regexp 匹配的内容。

    46220

    正则表达式入门

    3、正则表达式的定义 JS中定义正则表达式有两种方式,一种是通过构造函数,一种是通过/…/,也就是两个斜杠。...(‘study’); //表示含有study,(默认区分大小写) var reg = new RegExp('study', 'ig'); // 其中i 表示忽略大小写,g 表示全局匹配 3.2、...该属性可读写,但是只在进行连续搜索时有意义,详细介绍请看后文。 RegExp.prototype.source //返回正则表达式的字符串形式(不包括反斜杠),该属性只读。.../将匹配b,ba ,相当于{0,1} x|y // 匹配x或y ,/a|b/ 将匹配只要出现a或者b的字符串,不含a与b的不匹配 {n} // 精确匹配n次 ,/d{4}/ 将匹配,出现连续...4个d的字符串 {n,} // 匹配n次以上 ,/d{4,}/将匹配,出现连续4个及4个以上的d的字符串 {n,m} // 匹配n-m次,/d{4,8}/将匹配,出现连续4到8个d的字符串

    89420

    红宝书 📒 5.2 基本引用类型- RegExp

    匹配模式标记 g :全局模式,表示查找字符的全部内容 i :不区分大小写,表示查找匹配时忽略pattern和字符串的大小写 m :多行模式,表示查找到一行文本末尾会继续查找 y :粘附模式,表示只查找从...[0-9] \D 匹配一个非数字字符 等价于[^0-9] let pa = /[bc]at/i 匹配第一个"bat"或"cat" ,忽略大小写 let pa = /\[bc]at.../i 匹配第一个"[bc]at" 忽略大小写 let pa = /.at/gi 匹配所有以"at"结尾的三字符组合,忽略大小写 let pa = /\.at/gi...匹配所有".at"忽略大小写 要想使用元字符,必须进行转义。...source:正则表达式的字面量字符串(不是传给构造函数的模式字符串),没有开头和结尾的 斜杠。 flags:正则表达式的标记字符串。始终以字面量而非传入构造函数的字符串模式形式返回(没有前后斜杠)。

    50050

    JavaScript 高级程序设计(第 4 版)- 基本引用类型

    元字符在正则表达式中都有一种或多种特殊功能,所以要匹配元字符本身就需要用反斜杠转义 // 匹配第一个“bat”或“cat”,忽略大小写 let pattern1 = /[bc]at/i; // 匹配第一个...“[bc]at”,忽略大小写 let pattern2 = /\[bc\]at/i; // 匹配所有以“at”结尾的三字符组合,忽略大小写 let pattern3 = /.at/i; // 匹配所有“....at”,忽略大小写 let pattern4 = /\.at/i; 正则表达式也可以使用RegExp构造函数来创建,接收两个参数:模式字符串和(可选的)标记字符串 因为RegExp的模式参数是字符串...(RegExp.lastParen); // s 捕获组的上一次匹配 } # 模式局限 缺少特性 \A和\Z锚(分别匹配字符串的开始和末尾) 联合及交叉类 原子组 x(忽略空格)匹配模式 条件式匹配...match(),返回第一个元素时与整个模式匹配的字符串,其余元素则是与表达式中的捕获组匹配的字符串 search(),返回模式第一个匹配的位置索引 localeCompare() # 单例内置对象

    75420

    JavaScript正则表达式(Regular Expression):RegExp对象

    新建正则表达式的方法有两种: 1.使用字面量(斜杠/开始和结束)  注:字面量:表示固定值的符号。可以简单理解为表示值最简单、最基本的写法。...第二部分:RegExp对象的属性和方法 2.1属性 2.1.1:修饰符,返回布尔值 ignoreCase:忽略大小写;i;属性只读 global:全局匹配;g;属性只读 multiline:多行匹配;m...3.2 String.prototype.search():返回第一次匹配成功在整个字符串的位置;否则返回-1 同样的,设置lastIndex属性对search()无效;并且search()会忽略g修饰符...,所以要想匹配它们,得进行转义(在前面加上反斜杠\);比如匹配^,写成\^ 需要转义的12个字符:^;.;[;$;(;);|;*;+;?...;{和\\ 注意:如果使用RegExp生成正则对象,转义需要两个反斜杠,因为字符串内部转义需要一次\ 1 //匹配'+abc'字符串 2 var reg13=new RegExp('\\+abc');

    90650
    领券