经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤”hede”字串,但这种写法是错误的。...我们可以这样写:[^hede],但这样的正则表达式完全是另外一个意思,它的意思是字符串里不能包含‘h',‘e',‘d'三个但字符。那什么样的正则表达式能过滤出不包含完整“hello”字串的信息呢?...*匹配字符串"ABhedeCD"的结果false,因为在e3位置,(?!hede)匹配不合格,它之前有"hede"字符串,也就是包含了指定的字符串。 在正则表达式里, ?!...在hacker news上看到regex golf,几道很有趣的正则表达式的题,有的需要用到不匹配这种匹配,比如需要匹配不包含某个单词的串。...a) 前面没有a \B 非单词边界 正则表达式中有(?=a)和(?!a)来表示我们是否需要匹配某个东西。 所以,有需要不匹配某样内容时,就可以用(?!a)了。
大家好,又见面了,我是你们的朋友全栈君。...= /[#$@/\\(){}[\] ]/gi;//常见的特殊字符不够[]里面继续加 if($sz.test(str)){ console.log...} 不包含某些字符串: function zz() { var str = "1234567890abc[123456789"; var...*$/;//字符串按照要求换,加; if ($sz.test(str)) { console.log(str+'不含有指定字符串!')...; } } 当然下面不包含字符串可以演变为不包含字符使用,看你喜欢使用。
仅当子表达式 X 在 此位置的右侧匹配时才继续匹配。例如,/w+(?=/d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。 (?!=x) 零宽度负先行断言。...仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,/w+(?!/d) 与后不跟数字的单词匹配,而不与该数字匹配 。 (?仅当子表达式 X 在 此位置的左侧匹配时才继续匹配。例如,(?的实例匹配。此构造不会回溯。 (?仅当子表达式 X 不在此位置的左侧匹配时才继续匹配。例如,(?<!...9.RegExp对象 RegExp第一个参数包含正则表达式的主体部分,也就是直接量中两条斜线之间的文本,不论是字符串直接量还是正则表达式都使用 \ 字符作为转义字符的前缀, 因此当给RegExp()传入一个字符串表述正则表达式时
.* \1 其中使用了分组,\1就是对引号这个分组的引用,它匹配包含在两个引号或者两个单引号中的所有字符串,如,"abc" 或 " ' " 或 ' " ' ,但是请注意,它并不会对" a'或者 '...仅当子表达式 X 在 此位置的右侧匹配时才继续匹配。例如,\w+(?=\d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。 (?!X) 零宽度负先行断言。...仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,\w+(?!\d) 与后不跟数字的单词匹配,而不与该数字匹配。 (?<=X) 零宽度正后发断言。...仅当子表达式 X 在 此位置的左侧匹配时才继续匹配。例如,(?的实例匹配。此构造不会回溯。 (?<!X) 零宽度负后发断言。...仅当子表达式 X 不在此位置的左侧匹配时才继续匹配。例如,(?的实例匹配 说明: 非捕获组中四个表达式的区别: (?=X ) 和(?!
大家好,又见面了,我是你们的朋友全栈君。 一、简介 Perl正则表达式中模式指在字符串中寻找的特定序列的字符,由反斜线包含:/def/即Perl正则表达式中模式def。...~ =~检验匹配是否成功:$result=$var=~/abc/;若在该字符串中找到了该Perl正则表达式中模式,则返回非零值,即true,不匹配则返回0,即false。!~则相反。...当一行中各单词间的空格多于一个时,可以如下分割: @array=split(/+/,$line); 注:split函数每次遇到分割Perl正则表达式中模式,总是开始一个新单词,因此若$line以空格打头...6、锚模式 锚描述 ^或\A仅匹配串首 $或\Z仅匹配串尾 \b匹配单词边界 \B单词内部匹配 例1:/^def/只匹配以def打头的字符串,/$def/只匹配以def结尾的字符串,结合起来的/^def...替换操作符的选项如下表: 选项描述 g改变Perl正则表达式中模式中的所有匹配 i忽略Perl正则表达式中模式中的大小写 e替换字符串作为表达式 m将待匹配串视为多行 o仅赋值一次 s将待匹配串视为单行
:)被称为非捕获括号, 我们可以使用它匹配一组字符但是并不记住该字符,一般用来判断某类字符是否存在于某字符串中. 先行断言x(?=y) 先行断言: 匹配'x'仅仅当'x'后面跟着'y'....匹配到A仅当它前面为xuxi.但是xuxi不属于匹配结果的一部分. 正向否定查找x(?!y) 正向否定查找: 仅仅当'x'后面不跟着'y'时匹配'x'..../匹配一个或多个数字,当且仅当它后面没有小数点时, 所以(1)中执行后会匹配到1415而不是3.1415 反向否定查找(?<!y)x 反向否定查找: 仅仅当'x'前面不是'y'时匹配'x'....\d+/匹配一个数字,当且仅当前面字符不是.时,此时将匹配3. 字符集合和反向字符集合的用法 [xyz] / [^xyz] [xyz]: 一个字符集合。匹配方括号中的任意字符,包括转义序列。...解释: (1)中匹配到了单词边界,即xi, 为该字符串的末尾.(2)中应为xu为非单词边界,所以会被其匹配到.
,只在强制正则表达式满足模式中的条件时才进行匹配。...这是对应的图表。 ? 当匹配该表达式时,常常会发生一种情况:输入的字符串进入上方(二进制)分支的匹配过程,但输入中并不包含二进制数字。...我们以匹配字符串"103"为例,匹配过程只有遇到字符 3 时才知道进入了错误分支。该字符串匹配我们给出的表达式,但没有匹配目前应当处于的分支。 因此匹配器执行“回溯”。...全局和粘性选项之间的区别在于,启用粘性时,仅当匹配直接从lastIndex开始时,搜索才会成功,而全局搜索中,它会搜索匹配可能起始的所有位置。...针对以下几项,编写正则表达式,测试给定的子串是否在字符串中出现。正则表达式匹配的字符串,应该只包含以下描述的子串之一。除非明显提到单词边界,否则千万不要担心边界问题。
排除单词和模式 要仅显示与搜索模式不匹配的行,请使用-v( 或--invert-match) 选项。...user:/:/usr/bin/git-shellrumenz:x:1000:1000:rumenz:/home/rumenz:/bin/bash 该-w选项告诉grep仅返回指定字符串是整个单词(由非单词字符括起来...这意味着大写和小写被视为不同的字符。要在搜索时忽略大小写,请grep使用该-i选项进行调用。 如果搜索字符串包含空格,则需要将其括在单引号或双引号中。...以下示例打印不包含字符串nologin或bash 的行: > grep -wv 'nologin\|bash' /etc/passwd GNUgrep支持三种正则表达式语法,Basic、Extended...例如,要查找包含字符串GNU在你的Linux系统排除的文件proc,boot和sys你要运行的目录: > grep -r --exclude-dir={proc,boot,sys} gnu / 使用通配符匹配时
排除单词和模式 要仅显示与搜索模式不匹配的行,请使用-v( 或--invert-match) 选项。...user:/:/usr/bin/git-shell myfreax:x:1000:1000:myfreax:/home/myfreax:/bin/bash 该-w选项告诉grep仅返回指定字符串是整个单词...(由非单词字符括起来)的那些行。...这意味着大写和小写被视为不同的字符。要在搜索时忽略大小写,请grep使用该-i选项进行调用。 如果搜索字符串包含空格,则需要将其括在单引号或双引号中。...例如,要查找包含字符串GNU在你的Linux系统排除的文件proc,boot和sys你要运行的目录: > grep -r --exclude-dir={proc,boot,sys} gnu / 使用通配符匹配时
前言 re库就是我们常说的正则表达式库,它是用一种形式化语法来描述的文本匹配模式。通过该库,我们可以匹配特定字符串中的一些内容,比如爬取网页内容时,我们可以通过re库获取网页内容中的所有标签内容。...常用的断言如下表所示: 断言语法 含义 (?=pattern ) 后向断言。仅当子表达式 X 在 此位置的右侧匹配时才继续匹配。例如,/w+(?=/d) 与后跟数字的单词匹配,而不与该数字匹配。...仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,/w+(?!/d) 与后不跟数字的单词匹配,而不与该数字匹配 。 (?仅当子表达式 X 在 此位置的左侧匹配时才继续匹配。例如,(?的实例匹配。此构造不会回溯。 (?仅当子表达式 X 不在此位置的左侧匹配时才继续匹配。例如,(?<!
匹配包括换行在内的所有字符 re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。...标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。 反斜杠本身需要使用反斜杠转义。 由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。...模式 描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾。 . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。 [...]...与肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功 (?> re) 匹配的独立模式,省去回溯。...\D 匹配任意非数字 \A 匹配字符串开始 \Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。c \z 匹配字符串结束 \G 匹配最后匹配完成的位置。
指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。...(); 在仅使用一次正则表达式时,可以方便地通过此类定义 matches 方法。...可以在非字母字符前使用反斜线,不管该字符是否非转义构造的一部分。...例如,当解释为正则表达式时,字符串字面值 "\b" 与单个退格字符匹配,而 "\\b" 与单词边界匹配。...字符串字面值 "\(hello\)" 是非法的,将导致编译时错误;要与字符串 (hello) 匹配,必须使用字符串字面值 "\\(hello\\)"。
如果不用断言,以往用过的那些表达式,仅仅能获取到有规律的字符串,而不能获取无规律的字符串。...断言只是条件,帮你找到真正需要的字符串,本身并不会匹配! (?=X ) 零宽度正先行断言。仅当子表达式 X 在 此位置的右侧匹配时才继续匹配。例如,/w+(?...=/d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。 (?!X) 零宽度负先行断言。仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,/w+(?!.../d) 与后不跟数字的单词匹配,而不与该数字匹配 。 (?仅当子表达式 X 在 此位置的左侧匹配时才继续匹配。例如,(?...的实例匹配。此构造不会回溯。 (?仅当子表达式 X 不在此位置的左侧匹配时才继续匹配。例如,(?<!
exec()方法的参数是待匹配的字符串str,匹配成功时,该方法的返回值是一个数组,否则返回null。...\S 匹配一个非空白符 \w 匹配任意一个字母(大小写)、数字和下划线 \W 匹配任意一个非“字母(大小写)、数字和下划线”的字符 \b 匹配单词分界符。...可匹配从hello开始到world结束,中间包含零个或多个任意字符的字符串。 正则在实现指定数量范围的任意字符匹配时,支持贪婪匹配和惰性匹配两种方式。...=y) 仅当x后面紧跟着y时,才匹配 x Countr(?=y|ies)用于匹配Country或Countries中的Countr x(?!y) 仅当x后不紧跟着y时才匹配 x Countr(?!...当字符串为空时,split()方法返回的是一个包含一个空字符串的数组“[“”]”,如果字符串和分隔符都是空字符串,则返回一个空数组“[]”。
匹配前面的子表达式零次或一次,等价于{0,1} {n} 匹配确定的n次 {n,} 至少匹配n次 {n,m} 最少匹配n次且最多匹配m次 {?} 当该字符紧跟在任何一个其他限制符(*,+,?...,{n},{n,},{n,m})后面时,匹配模式是非贪婪的 {n,} 至少匹配n次 {\b} 匹配一个单词边界 {\B} 匹配非单词边界 2、字符匹配符 字符 说明 xyz 匹配所包含的任意一个字符...^xyz 匹配未包含的任意字符 a-z 匹配指定范围内的任意字符 ^a-z 匹配任何不在指定范围内的任意字符 3、捕获分组、非捕获分组 字符 描述 (pattern) 匹配pattern并获取这一匹配...:pattern) 匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配 (?=pattern) 在任何匹配pattern的字符串开始处匹配查找字符串 4、特殊字符 字符 描述 ....等价于0-9 \r 匹配一个换行 \s 匹配任何空白字符 \S 匹配任何非空白字符 \w 匹配包括下划线的任何单词字符 \W 匹配任何非单词字符 \t 匹配一个制表符 \W 匹配任何非单词字符 5、选择匹配符
最简单的形式是,当没有给出正则表达式类型时,grep会将搜索模式解释为基本正则表达式。要将模式解释为扩展的正则表达式,请使用-E(或--extended-regexp)选项。...^(脱字符号)符号与一行开头的空字符串匹配。 在以下示例中,仅当字符串“ linux”出现在行的开头时才匹配。 $grep '^linux' file.txt $(美元)符号与行首的空字符串匹配。...例如,要查找仅包含“ linux”的行,请运行: $grep '^linux$' file.txt 另一个有用的示例是匹配所有空行的^ $模式。 匹配单个字符 ....替换操作符| (pipe)允许您指定不同的可能匹配,可以是文字字符串或表达式集。该操作符在所有正则表达式操作符中优先级最低。...下表显示了一些最常见的特殊反斜杠表达式: Expression Description \b 单词锁定符 \单词开头匹配一个空字符串。 \> 在单词末尾匹配一个空字符串。 \w 匹配一个单词。
什么是正则表达式? 正则表达式是由一个字符序列形成的搜索模式。 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。 正则表达式可以是一个简单的字符,或一个更复杂的模式。...量词: 量词 描述 n+ 匹配任何包含至少一个n的字符串。 n* 匹配任何包含零个或多个n的字符串。 n? 匹配任何包含零个或一个n的字符串。...modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配 注意: 当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 )。...元字符 元字符(Metacharacter)是拥有特殊含义的字符: 元字符 描述 查找单个字符,除了换行和行结束符。 查找单词字符。 查找非单词字符。 查找数字。 查找非数字字符。 查找空白字符。...查找非空白字符。 匹配单词边界。 匹配非单词边界。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
使用正则表达式,你需要指定一些规则来描述那些你希望匹配的字符串集合。这些字符串集合可能包含英语句子、 e-mail 地址、TeX 命令,或任何你想要的东东。...匹配任何字符(包含换行符) | A | B,表示匹配正则表达式 A 或者 B ^ 1. (脱字符)匹配输入字符串的开始位置2....字符类,匹配所包含的任意一个字符注1:连字符 - 如果出现在字符串中间表示字符范围描述;如果如果出现在首位则仅作为普通字符注2:特殊字符仅有反斜线 \ 保持特殊含义,用于转义字符。...等均作为普通字符匹配注3:脱字符 ^ 如果出现在首位则表示匹配不包含其中的任意字符;如果 ^ 出现在字符串中间就仅作为普通字符匹配 {M,N} M 和 N 均为非负整数,其中 M 的...非捕获组,即该子组匹配的字符串无法从后边获取 (?P...) 命名组,通过组的名字(name)即可访问到子组匹配的字符串 (?
或运算符|(管道符)可以指定不同的可能匹配项,这些匹配项可以是文字字符串或表达式集。在所有正则表达式运算符中,此运算符的优先级最低。.../error.log 如果要搜索的字符串包含空格,请用双引号将其引起来。...搜索字符串时,grep将显示该字符串嵌入较大字符串中的所有行。...要仅返回指定字符串为整个单词(用非单词字符括起来)的那些行,请使用-w(或--word-regexp)选项: grep -w 'fatal\|error\|critical' /var/log/nginx...所有其他字符均视为非单词字符。 写在最后 上面两节实例,我们着重说了 grep 的多个搜索字符串,和多个匹配模式的基本用法,使用的时候一定要注意 | 是否转义。
领取专属 10元无门槛券
手把手带您无忧上云