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

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

经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤”hede”字串,但这种写法是错误的。...我们可以这样写:[^hede],但这样的正则表达式完全是另外一个意思,它的意思是字符串里不能包含‘h',‘e',‘d'三个但字符。那什么样的正则表达式能过滤出不包含完整“hello”字串的信息呢?....)*$ 上面这个表达式就能过滤出不包含‘hede'字串的信息。我上面也说了,这种写法并不是正则表达式“擅长”的用法,但它是可以这样用的。 解释 一个字符串是由n个字符组成的。...在正则表达式里, ?! 是否定式向前查找,它帮我们解决了字符串“不包含”匹配的问题。...在hacker news上看到regex golf,几道很有趣的正则表达式的题,有的需要用到不匹配这种匹配,比如需要匹配不包含某个单词的串。

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

    mysql正则表达式,实现多个字段匹配多个like模糊查询

    正则即字段值包含正则的内容即可 . 匹配任何单个的字符,表示任意单字符 [...]...匹配包含方括号内某单个字符的字符串,[0-9]匹配0到9之间的某个数字 * 匹配零个或多个在它前面的字符 {n} 匹配n个在它前面的字符 如果希望大小写都匹配上可以这样写。...但默认是不区分大小写的 [b] 也可匹配上还有 B 的字符串 要匹配的字符在字段起始处,使用 ^ ,在字段的结尾用 $ 如果是中文字符,可能在使用时需要注意一下。...- 包含0个或多个d的字符串,能匹配到该字段的所有值,因为 * 前的字符0个也匹配 SELECT * FROM `test_t` WHERE NAME RLIKE 'B{1}$'; -- 结尾是一个...B,能匹配到name_aB -- ==============模糊查询================ -- MySql的like语句中的通配符:百分号、下划线和escape -- % 表示任意个或多个任意字符

    12.6K20

    如何查询同时包含多个指定标签的文章

    文章和标签是典型的多对多的关系,也就是说每一篇文章都可以包含多个标签,如图: 每一篇文章都可以包含多个标签 下面问题来了:如何查询 tag_id 同时包含 1、2、3 的 article_id?...article_id FROM articles_tags WHERE tag_id in (1, 2, 3) GROUP BY article_id HAVING COUNT(*) = 3 关于一对多关系的查询问题...,实际情况可能会更复杂一些,让我们扩展一下本题: 如何查询 tag_id 包含 1、2 但不包含 3 的 article_id?...如何查询 tag_id 包含 1、2、3 中至少两个的 article_id?...如果你理解了前面介绍的几种方法,那么解决这些扩展问题并不困难,不要固守某一种方法,要根据情况选择合适的方法,篇幅所限,恕不赘述,留给大家自己解决吧。

    1.9K20

    正则表达式之匹配不存在特定字符的字符串

    作为一名不经常使用正则表达式的程序员,想用最简单的语言来描述否定匹配,不过发现确实不是那么好理解。还是按照自己知道的来描述吧。...=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。...预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 (?!...pattern) 匹配,显而易见它是匹配下一个字符串来判断本次的匹配是否成功。当然这是一个否定匹配。 问题 在文档中匹配出,不包含“hello”的字符串。...当然这不是重点,重点是怎么来写这个正则表达式。 当然,结论是: ^(?!.*hello).*$ 运行效果: ? 将包含有“hello”的字符串全部排除掉了。这样就实现了我们想要的效果。

    5.7K20

    Python 正则表达式(匹配多个字符)- 寻找香烟smoke的故事

    仅供学习,转载请注明出处 匹配多个字符 思考 场景:胖子老板在写字板写了一大堆东西,判断是否存在smoke的语句,判断正确就可以送你一包烟。...匹配多个字符的相关格式 字符 功能 * 匹配前一个字符出现0次或者无限次,即可有可无 + 匹配前一个字符出现1次或者无限次,即至少有1次 ?...M' In [11]: # 再来匹配大小写 a到z 的字母,当然这也是匹配一个字符而已,那么怎么匹配多个字符呢?...因为 * 号的原因就是匹配前面的字符是否存在0次,或者多次的情况。这次匹配就是0次,那么直接就返回空字符串了。...,这时候使用{ 8,20 } 即可匹配8到20位这个 \w 的字符了。

    4.1K20

    MongoDB正则表达式查询

    正则表达式的模式可以包含以下内容:字母、数字和常见的符号,例如a-z、0-9、+、-、_等;特殊字符,例如^表示匹配字符串开头、$表示匹配字符串结尾、.表示匹配任意字符、*表示匹配前一个字符的0个或多个...操作符在MongoDB中,我们可以使用以下操作符进行正则表达式查询:$regex:表示使用正则表达式进行查询;$options:表示正则表达式的选项,包括i表示不区分大小写、m表示多行匹配、s表示匹配包括换行符在内的所有字符...示例下面我们来看一些MongoDB正则表达式查询的示例:匹配特定字符串假设我们有一个名为users的集合,其中包含以下文档:{ "_id": 1, "name": "Alice"},{ "_id"...匹配特定模式如果我们想要查找名字中包含"a"和"e"这两个字母的文档,可以使用正则表达式的&符号表示匹配两个模式的交集:db.users.find({ "name": { $regex: "a&" },...不区分大小写匹配如果我们想要查找名字中包含字母"a"或"e"的文档,不区分大小写,可以使用正则表达式的i选项:db.users.find({ "name": { $regex: "a|e", $options

    1.8K20

    你知道MySQL中使用“正则表达式“和“like操作符“有多么影响你的运行效率吗!,快来看看这篇文章,告诉你如何优化

    () 分组和捕获,将正则表达式的一部分组合在一起,以便将其作为一个整体进行匹配或引用。例如,(abc)+匹配一个或多个连续的“abc”字符串。...匹配不包含特定字符的字符串 SELECT * FROM table_name WHERE column_name NOT REGEXP 'A'; 这条查询语句会返回column_name列中不包含字母“...使用字符集合匹配多个字符 SELECT * FROM table_name WHERE column_name REGEXP '[abc]'; 这条查询语句会返回column_name列中包含字母“a”...使用否定字符集合匹配不在集合中的字符 SELECT * FROM table_name WHERE column_name REGEXP '[^abc]'; 这条查询语句会返回column_name列中不包含字母...使用分组和捕获匹配特定模式 SELECT * FROM table_name WHERE column_name REGEXP '(abc)+'; 这条查询语句会返回column_name列中包含一个或多个连续

    19410

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

    (regex 或 regexp)在文本信息提取方面是非常有用的工具,通过查询一个或多个特定搜索模式的匹配实现(例如,特定的ASCII或unicode字符序列)。...> 匹配内包含的任何一个或多个字符,根据需要进行扩展 - >试试吧!...请注意,更好的解决方案应该避免使用.来支持更严格的正则表达式: ]+> 匹配中包含的一次或多次除以外的任何字符 - >试试吧!...(特别是网页抓取,最终按特定顺序查找包含特定单词集的所有页面) 数据转换(将数据从“原始”转换为另一种格式) 字符串解析(例如捕获所有URL的GET参数,捕获一组括号内的文本) 字符串替换(即使在使用通用...不久我将出版一份包含常见正则表达式列表的新文章,敬请关注!

    1.6K30

    SQL Server 2005 正则表达式使模式匹配和数据提取变得更容易

    例如,如果您有一个存储了 URL 的列,您现在可以轻松地分析此 URL 以确定各个片段。此查询使用分组来确定存储在 UrlTable 表的 Url 列中的每个不同的服务器。...[Text] 此模式与任何不包含逗号的字符组匹配。如果给定一个名为 Data 的表和一个名为 ID 的整数列,此查询将返回列表中标识的每个记录。...鉴于 SQL Server 中的隐式转换功能,这样会更有用。同一查询还可用于整数、日期/时间、GUID 或浮点数据类型。处理一列值的其他方法需要使用多个函数或存储过程才能达到这种灵活程度。...通过此函数,我们现在可在字符串中找到多个匹配项,并且可从每个匹配项中提取特定的信息片段。 处理数据库时,以不同格式导入数据是常见的任务。以逗号分隔格式导入文件则更常见。...还有许多确定执行匹配操作确切方法的可能选项。如果您的数据库排序不区分大小写,您可能希望函数也以不区分大小写的方式执行匹配操作。可能会要求显式捕获选项以减少某些结果集。

    6.4K60

    Java注解之@PathVariable

    常见的正则表达式包括 .+(匹配任意字符)和 .*(匹配零个或多个字符)。例如,如果要匹配以 .jpg 结尾的文件路径,可以使用 {filename:.+\.jpg}。...2.使用查询参数: 可以将可选参数作为查询参数传递给请求 URL。查询参数是放置在 URL 后面的键值对,使用 ? 分隔 URL 和查询参数,多个查询参数之间使用 & 进行分隔。...因此,选择使用路径变量还是查询参数会取决于具体场景和设计需求。 19、如果指定的路径不包含 URL 路径变量,会发生什么?...这样,如果请求的路径不包含 {id} 部分,将会导致路径不匹配,从而返回 404 错误。...以上是处理指定的路径不包含 URL 路径变量的几种解决方案,具体的选择取决于业务需求和项目设计。

    36610

    玩转谷歌优化(Google Optimize)

    在同一页(或页面模板)上测试具有两个或多个不同部分的变体。当你想尝试在同一页面(或页面模板)上测试多个元素的组合时,多变量测试则是一个非常好的选择。 重定向测试。 用于测试不同URL或路径的网页。...每个定向选项都链接到谷歌优化的定向文档中,其中包含有关如何使用这些选项的详细信息。 URLs 定向特定的网页和网页集。URL定向可让你选择实验运行的网页。...包含/不包含 包含匹配类型(也称为“子串匹配”)允许你使用较长的字符串定向出现的任何子字符串。 以…开头/非…开头“以..开头”类型的匹配从查询字符串开头到包含指定字符串中最后一个字符的相同字符。...正则表达式匹配/与正则表达式不匹配 正则表达式使用特殊字符来启用通配符和灵活匹配。当同一网页的网址中的词干、尾随参数或两者都不同时,正则表达式匹配很有用。...如果用户可能来自许多子域中的一个,并且你的URL使用会话标识符,则可以使用正则表达式来定义URL的常量元素。

    3.8K70

    mysql 必知必会整理—sql 正则表达

    如果你想替换一个页面中的所有URL为这些URL的实际HTML链接,也可以使用一个正则表达式(对于最后这个例子,或者是两个正则表达式)。...匹配不区分大小写 MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。...上面通过".000" 匹配了里面有1000或者2000的,那么是否有其他方式? 可以通过这样的|来匹配: 匹配任何单一字符。但是,如果你只想匹配特定的字符,怎么办?...上面这个不需要背诵,只需要用的时候查看一下即可。 匹配多个实例: 目前为止使用的所有正则表达式都试图匹配单次出现。如果存在一个匹配,该行被检索出来,如果不存在,检索不出任何行。...定位符: 目前为止的所有例子都是匹配一个串中任意位置的文本。为了匹配特定位置的文本. 结

    1.3K20

    【ASP.NET Core 基础知识】--路由和请求处理--路由概念(一)

    二、路由模板详解 2.1 静态路由 静态路由是一种简单直接的路由配置方式,其中路由规则是固定的,不包含动态参数。在静态路由中,URL的结构和路由模板是固定的,不随用户请求的变化而改变。...特点: 固定路由规则: 静态路由的路由规则是固定的,不包含占位符或动态参数。每个URL都与特定的控制器和动作方法相对应。 简单直观: 静态路由通常比较简单,易于理解和配置。...业务逻辑的具体实现可能会涉及到多个组件和模块。 模型操作: 控制器通过调用模型的方法来操作和管理应用程序的数据。它可以对模型进行查询、更新、删除等操作,以确保数据的一致性和有效性。...正则表达式约束: 正则表达式约束允许使用正则表达式来指定路由参数的格式,只有满足正则表达式条件的参数值才会匹配到路由。...^\\d+匹配一个或多个数字。

    48610

    MongoDB权威指南学习笔记(1)--基础知识与对文档的增删改查

    一个键可以在任意多个条件,但是一个键不能对应多个更新修改器 特定类型的查询 null null不仅会匹配某个键的值为null的文档,而且还会匹配不包含这个键的文档。...这个匹配还会返回缺少这个键的所有文档 如果仅想匹配键值为null的文档,既要检查该键的值是否时null,还要通过$exists条件判断键值是否存在。 正则表达式 正则表达式能够有效地匹配字符串。...例如: 想要查找所有名为Joe或者joe的用户,就可以使用正则表达式执行不区分大小写的匹配 db.users.find({ "name":/joe/i }) 系统可以接受正则表达式标志(i...mongoDB使用Perl兼容的正则表达式来匹配正则表达式 查询数组 查询数组元素和查询标量值是一样的 例如有一个水果列表 db.food.insert({ "fruit":["aople",...size 用它查询特定长度的数组。

    5.6K10

    Go语言中的正则表达式

    因为不包含该字符串,所以该断言匹配到的文本长度为0,所以称之为零宽断言。 零宽断言分为两种: 回望(lookbehind),即从匹配位置往后(左)查询。表达式为 (?...的左边满足正则表达式exp,则匹配该文本,不包含exp本身匹配到的字符串。 前瞻(lookahead),即从匹配位置往前(右)查询。表达式为(?...=exp),意思是如果文本的右边满足正则表达式exp,则匹配该文本,不包含exp本身匹配到的字符串。...=exp)意思是如果文本的左边不满足正则表达式exp,则匹配该文本,同样不包含exp本身匹配不成功的字符串。 下面的例子可以说明零宽断言的作用。...字符类 正则表达式内置了一些字符类,通过下表所列的字符类的写法可以匹配到多个属于这一类字符。

    8910

    你真的了解如何将 Nginx 配置为Web服务器吗

    但是,可以使用正则表达式匹配这些名称,例如 ~^www\..+\.example\.org$ 和~^w.*\.example\.org$ 。 而且 * 可以匹配多个部分。...如果找到的最长前缀匹配字符串以 ^~ 开头,则不再搜索正则表达式是否匹配。 存储匹配的最长前缀字符串。 测试对比 URI 与正则表达式。 找到第一个匹配的正则表达式后停止。...有很多预定义变量,例如核心的 HTTP 变量,你也可以使用 set,map 和 geo 指令定义自定义变量。 大多数变量在运行时计算,并包含与特定请求相关的信息。...这个变量等于包含一些客户端请求参数的原始URI,它无法修改,不包含主机名,如:/cnphp/test.php?...$server_port : 请求到达服务器的端口号。 $request_uri : 包含请求参数的原始URI,不包含主机名,如:/foo/bar.php?arg=baz。

    2.1K80

    使用正则表达式尽可能准确匹配域名网址

    一个域名的层次结构,从右侧到左侧隔一个点依次下降一层。每个标签可以包含1到63个八字节。域名的结尾有时候还有一点,这是保留给根节点的,书写时通常省略,在查询时由软件内部补上。...级别最低的域名写在最左边,而级别最高的域名写在最右边。由多个标号组成的完整域名总共不超过255个字符。 路径 路径是使用 / 分隔的一段一段字符串。...正则表达式匹配 在确认了完整的网址 URL 的规范之后,使用正则表达式来匹配就会比较精确了。 域名 现在,我们来尝试匹配一下域名 。...URL(宽松) 宽松一点的话,正则表达式就好写多了。 这个正则表达式可以不写 https 协议前缀: 1 ^\w+[^\s]+(\....更多大牛匹配 URL 的正则表达式 在 GitHub 上还有很多大牛们在写各种匹配 URL 的正则表达式: regex-weburl.js 最长的一个写了 1347 个字符,最短的有 38 个字符。

    6.7K30
    领券