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

linux 正则表达式匹配包含某些字符串的技巧

经常我们会遇到想找出包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤”hede”字串,但这种写法是错误的。...我们可以这样写:[^hede],但这样的正则表达式完全是另外一个意思,它的意思是字符串里不能包含‘h',‘e',‘d'三个但字符。那什么样的正则表达式能过滤出包含完整“hello”字串的信息呢?...*匹配字符串"ABhedeCD"的结果false,因为在e3位置,(?!hede)匹配不合格,它之前有"hede"字符串,也就是包含了指定的字符串。 在正则表达式里, ?!...在hacker news上看到regex golf,几道很有趣的正则表达式的题,有的需要用到匹配这种匹配,比如需要匹配包含某个单词的串。...零个或多个a(非贪婪) (a|b) a或b \b 单词边界 (a)...\1 引用分组 (?=a) 前面有a (?!a) 前面没有a \B 非单词边界 正则表达式中有(?=a)和(?!

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

字符串正则表达式

在这里,* 会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求。...这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是 m, 后一个是 e。...如果要精确地查找 me 这个单词的话,我们应该使用 \bme\b。 \b正则表达式规定的一个特殊代码(有些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。...9、贪婪懒惰 当正则表达式中包含能接受重复的限定符时,通常的行为是匹配尽可能多的字符。以这个表达式为例:b.*c ,它将会匹配最长的以 b 开始,以 c 结束的字符串。...Multiline 更改 ^ 和 的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。在此模式下 的精确含意是:匹配 \n 之前的位置以及字符串结束前的位置.)

3.2K20

正则表达式教程:实例速查

运算符,因为通常类或反义字符类(我们将在下面介绍)会更快更精确。 \ d,\ w和\ s也分别用\ D,\ W和\ S表示它们的否定。 例如,\ D将执行\ d获得的相反匹配。...我们可以指定一个带有这些值的标志(我们也可以将它们相互组合): g(全局)在第一次匹配返回,从上一次匹配结束时重新开始后续搜索 m(多行)启用时,^和$将匹配这行的开头和结尾,而不是整个字符串。...i(不敏感)使整个表达式区分大小写(例如/ aBc / i将匹配AbC)。 中心主题 分组和捕获——() a(bc) 括号创建一个值为bc的捕获组 - >试试吧! a(?...,我们将能够使用匹配结果检索组值,就像字典一样,其中键将是每个组的名称。 括号表达式——[] [abc] 匹配一个具有a或b或c的字符串 - >a | b | c相同 - >试试吧!...这匹配\b匹配的所有位置,如果我们想要找到完全被单词字符包围的搜索模式,则可以匹配。 \Babc\B 仅当图案完全被单词字符包围时才匹配 - >试试吧!

1.6K30

文本过滤之grep,egreo及fgrep 三剑客及正则表达式

但是其在速度方面,相对前面两者,就比较快了,在精确匹配是就很好用。...2.支持的常用选项 选项 作用 --color=auto 设置语法着色(可用alias默认使用) -v 反向选取 -o 仅显示匹配到的字符串 -i 区分大小写 -E(仅grep支持) 使用扩展正则表达式...-A # 显示匹配到行及其前的#行 -B # 显示匹配到行及其后的#行 -C # 显示匹配到行及其前的#行和其后的#行 3.常用字符合集(注:可在正则表达式的字符匹配中结合[]或[^]使用) [:digit...(注:为了使效果更明显,已设置别名alias grep="grep --color=auto".所使用示例文件在文章最下方) 字符匹配 ....,欲匹配单个字符,可以结合\(\)使用abcefabdef 5.扩展正则表达式 关于扩展正则表达式的元字符大体上和标准正则表达式是一样的,只是在一些元字符使用时,不再需要使用\进行转义,只有在使用词首锚定

89630

爬虫系列(6)数据提取--正则表达式

正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就易如反掌了 规则: 模式 描述...匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式 re{ n} re{ n,} 精确匹配n个前面表达式 re{ n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 a b (...肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功 (?...正则表达式相关注解 2.1 数量词的贪婪模式非贪婪模式 正则表达式通常用于在文本中查找匹配字符串Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反...如 re.I | re.M 被设置成 I 和 M 标志: 修饰符 描述 re.I 使匹配对大小写不敏感 re.L 做本地化识别(locale-aware)匹配 re.M re.S 使 .

1.1K30

Nginx常见配置

~ 匹配区分大小写的定的正则表达式 ~* 匹配区分大小写的定的正则表达式 ^~ 类似于无修饰符的行为,也是以指定模式开始,不同的是,如果模式匹配, 那么就停止搜索其他模式了 !...~ 匹配区分大小写的定的正则表达式 !~* 匹配区分大小写的定的正则表达式 示例 location = / {   # 只匹配 / 的查询....  [ configuration A ] } location / {   # 匹配任何以 / 开始的查询,但是正则表达式一些较长的字符串将被首先匹配。   .../images/1.gif → configuration C /documents/1.jpg → configuration D 查找顺序和优先级 带有=的精确匹配优先 没有修饰符的精确匹配 正则表达式按照他们在配置文件中定义的顺序...带有^~修饰符的,开头匹配 带有~ 或~\* 修饰符的,如果正则表达式URI匹配 没有修饰符的,如果指定字符串URI开头匹配 root、alias指令区别 location /img/ {

1.1K20

正则表达式30分钟入门教程

这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。...如果需要更精确的说法,\b匹配这样的位置:它的前一个字符和后一个字符不全是(一个是,一个不是或不存在)\w。 如果同时使用其它元字符,我们就能构造出功能更强大的正则表达式。...exp),断言此位置的后面不能匹配表达式exp。例如:\d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字;\b((?!abc)\w)+\b匹配包含连续字符串abc的单词。...(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.) Singleline(单行模式) 更改.的含义,使它与每一个字符匹配(包括换行符\n)。...正则表达式引擎会进行回溯(放弃最前面或最后面的一些字符),尽量使整个表达式得到匹配

82800

数据提取-正则表达式

正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就易如反掌了 规则: 模式 描述...匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式 re{ n} re{ n,} 精确匹配n个前面表达式 re{ n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 a b (...肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功 (?...正则表达式相关注解 # 2.1 数量词的贪婪模式非贪婪模式 正则表达式通常用于在文本中查找匹配字符串 Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;...如 re.I | re.M 被设置成 I 和 M 标志: 修饰符 描述 re.I 使匹配对大小写不敏感 re.L 做本地化识别(locale-aware)匹配 re.M re.S 使 .

98120

Linux 三板斧之一:grep

它可以快速搜索文件的内容,寻找包含某个字符串正则表达式的文本行。...常用选项包括: -i: 忽略大小写,搜索“ROOT”、“rOot”等 -v: 打印包含pattern的行,反转选择 -n: 输出行号 -c: 只输出匹配行数 -l: 只输出匹配行所在文件 -w: 精确匹配整个单词...-E: 使用扩展正则表达式搜索 -r: 递归搜索子目录中的文件 -A: 打印匹配行和后续若干行 -B: 打印匹配行和前若干行 -C: 打印匹配行和前后若干行 例如: grep -i root /etc...熟练掌握各种选项,可以完成许多复杂的文本搜索过滤任务。 grep中 的正则表达式 grep 支持扩展正则表达式,可以实现更复杂的文本搜索。...正则表达式使 grep 变得异常强大,几乎可以实现任何文本模式的搜索匹配

23930

熬夜到虚脱整理出来的Python的正则表达式总结

一. python正则表达式介绍 1.正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否某种模式匹配。...2.Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。 3.re 模块使 Python 语言拥有全部的正则表达式功能。...4.compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。...5.re 模块也提供了这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。...import re # 在正则前加r,表示原生字符串,python字符串转义 或者直接\\\\a。

47050

python学习--正则表达式

Python支持的正则表达式元字符和语法: 语法 说明 实例 完整匹配字符串 一般字符 匹配自身 a1b2c3 a1b2c3 ....#com..)123 ab123 反斜杠 大多数编程语言相同,正则表达式里使用"\"作为转义字符,这就可能造成反斜杠困扰。...进阶 要做更精确匹配,可以用[]表示范围,比如: [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线; [0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100...你可能注意到了,py也可以匹配'python',但是加上^py$就变成了整行匹配,就只能匹配'py'了。 re模块 re 模块使 Python 语言拥有全部的正则表达式功能。...maxsplit用于指定最大分割次数,指定将全部分割。

64230

Nginx的location配置规则梳理

4)~* ~ 类似,但这个 location modifier 区分大小写,pattern 须是正则表达式 server { server_name website.com; location.../abcde # 匹配正则表达式 ^/abcd$ 5)^~ 匹配情况类似 2....相同类型的表达式,字符串长的会优先匹配。 优先级排列: 1)等号类型(=)的精确匹配优先级最高,精确匹配只能命中一个。一旦匹配成功,则不再查找其他匹配项。.../5B.txt ------------501 结论: 去分和区分大小写的正则匹配优先级相同,以先后顺序来决定匹配哪一个. 2)再来比较=~的优先级 location = /5b.txt...所以精确匹配不要用来匹配/ 3)字符串搜索正则搜索 location /images/test.png { echo 'config1'; } location ^~ /images/

1.9K70

Python 正则表达式大全(下)

使 ....---- 正则表达式模式 模式字符串使用特殊的语法来表示一个正则表达式: 字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。 多数字母和数字前加一个反斜杠时会拥有不同的含义。...re+ 匹配1个或多个的表达式。 re? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式 re{ n} re{ n,} 精确匹配n个前面表达式。...re{ n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 a| b 匹配a或b (re) G匹配括号内的表达式,也表示一个组 (?...肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功 (?> re) 匹配的独立模式,省去回溯。

94110

Python学习笔记(十一)·正则表达式

因为正则表达式也是用字符串表示的,所以,我们要首先了解如何用字符来描述字符。 在正则表达式中,如果直接给出字符,就是精确匹配。...11.1 进阶 要做更精确匹配,可以用[]表示范围,比如: [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线; [0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串...切分字符串正则表达式切分字符串比用固定的字符更灵活,请看正常的切分代码: >>> 'a b c'.split(' ') ['a', 'b', '', '', 'c'] 嗯,无法识别连续的空格,...'a,b;; c d') ['a', 'b', 'c', 'd'] 如果用户输入了一组标签,下次记得用正则表达式来把规范的输入转化成正确的数组。...如果一个正则表达式要重复使用几千次,出于效率的考虑,我们可以预编译该正则表达式,接下来重复使用时就不需要编译这个步骤了,直接匹配: >>> import re # 编译: >>> re_telephone

40820

正则表达式30分钟入门教程 转

假设你在一篇英文小说里查找hi,你可以使用正则表达式hi。 这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。...\B 匹配不是单词开头或结束的位置 [^x] 匹配除了x以外的任意字符 [^aeiou] 匹配除了aeiou这几个字母以外的任意字符 例子:\S+匹配包含空白符的字符串。...exp),断言此位置的后面不能匹配表达式exp。例如:\d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字;\b((?!abc)\w)+\b匹配包含连续字符串abc的单词。...(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.) Singleline(单行模式) 更改.的含义,使它与每一个字符匹配(包括换行符\n)。...正则表达式引擎会进行回溯(放弃最前面或最后面的一些字符),尽量使整个表达式得到匹配

88420

JavaScript 正则表达式入门教程

正则表达式是描述一组字符串特征的模式,用来匹配特定的字符串 主要分三个部分:基本语法、RegExp对象的方法、JS中支持正则表达式的String对象方法 一、基本语法 在JS中,正则表达式为对象,用如下两种方式定义...Multiline(多行模式) 更改^和$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。...(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.) Singleline(单行模式) 更改.的含义,使它与每一个字符匹配(包括换行符\n)。...对象方法 1、search()   查找:stringObject.search(regexp/str);   该方法用于检索字符串中指定的子字符串,或检索正则表达式匹配字符串,它不执行全局匹配(...() 替换:stringObject.replace(regexp/str,str/function); 该方法用于在字符串中使用一些字符替换另一些字符,或者替换一个正则表达式匹配的子字符串;默认只替换第一个匹配的字符

1.3K30

正则表达式30分钟入门教程--deerchao

这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。...\D 匹配任意非数字的字符 \B 匹配不是单词开头或结束的位置 [^x] 匹配除了x以外的任意字符 [^aeiou] 匹配除了aeiou这几个字母以外的任意字符 例子:\S+匹配包含空白符的字符串...exp),断言此位置的后面不能匹配表达式exp。例如:\d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字;\b((?!abc)\w)+\b匹配包含连续字符串abc的单词。...(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.) Singleline(单行模式) 更改.的含义,使它与每一个字符匹配(包括换行符\n)。...正则表达式引擎会进行回溯(放弃最前面或最后面的一些字符),尽量使整个表达式得到匹配

1.9K40
领券