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

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

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

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

    求字符串内包含重复字符的最长子串

    今天我遇到一个问题,题目描述如下:         一个字符串,求这个字符串中包含重复字符的最长子串的长度,如abba返回2,aaaaabc返回3,bbbbbbb返回1,等等上面是测试用例。...那么我解决这个问题的思路有两种: 第一种是,设一个头指针和一个尾指针,头指针指向,包含重复字符子串的第一个字符,尾指针指向包含重复子串的最后一个字符,用一个hashset保存已经出现过的字符,例如abba...,如果尾指针指向的字符,在集合中没有出现,那么将这个字符放入结合,然后尾指针向后移动,这是尾指针会移动到第二个b的位置,如果集合中已经包含了这个字符,那么用尾指针的索引减去头指针的索引,会求出一个子串的长度...第二种思路比较巧妙,思路是这样的这次要以一个hashmap作为辅助,map的key存储的是字符,value存储的是该字符当前的位置,首先设置一个头指针,指向字符串开头,那么从开始遍历字符串,如果map当中包含这个字符

    1.1K20

    全网最硬核 JVM TLAB 分析(单篇版包含额外加菜)

    由于文章很长,每个人阅读习惯不同,所以特此拆成单篇版和多篇版全网最硬核 JVM TLAB 分析(单篇版包含额外加菜) 全网最硬核 JVM TLAB 分析 1....TLAB 生命周期停止(TLAB 声明周期停止代表内存被回收,只是代表这个 TLAB 不再被这个线程私有管理)在: 当前 TLAB 不够分配,并且剩余空间小于最大浪费空间限制,那么这个 TLAB 会被退回...[image] 如果不管这些孔隙,由于 TLAB 仅线程内知道哪些被分配了,在 GC 扫描发生时返回 Eden 区,如果填充的话,外部并不知道哪一部分被使用哪一部分没有,需要做额外的检查,那么会影响...单位是字节 默认:0, 0 就是主动设置 TLAB 初始大小,而是通过 JVM 自己计算每一个线程的初始大小 举例:-XX:TLABSize=65536 7.6....线程本轮 GC 分配空间的大小包含 TLAB 中分配的和 TLAB 外分配的,从 图8、图9、图10 流程图中对于线程记录中的线程分配空间大小的记录就能看出,读取出线程分配空间大小减去上一轮 GC 结束时线程分配空间大小就是线程本轮

    1K40

    全网最硬核 JVM TLAB 分析(单篇版包含额外加菜)

    由于文章很长,每个人阅读习惯不同,所以特此拆成单篇版和多篇版 全网最硬核 JVM TLAB 分析(单篇版包含额外加菜) 全网最硬核 JVM TLAB 分析 1....TLAB 生命周期停止(TLAB 声明周期停止代表内存被回收,只是代表这个 TLAB 不再被这个线程私有管理)在: 当前 TLAB 不够分配,并且剩余空间小于最大浪费空间限制,那么这个 TLAB 会被退回...如果不管这些孔隙,由于 TLAB 仅线程内知道哪些被分配了,在 GC 扫描发生时返回 Eden 区,如果填充的话,外部并不知道哪一部分被使用哪一部分没有,需要做额外的检查,那么会影响 GC 扫描效率。...单位是字节 默认:0, 0 就是主动设置 TLAB 初始大小,而是通过 JVM 自己计算每一个线程的初始大小 举例:-XX:TLABSize=65536 7.6....线程本轮 GC 分配空间的大小包含 TLAB 中分配的和 TLAB 外分配的,从 图8、图9、图10 流程图中对于线程记录中的线程分配空间大小的记录就能看出,读取出线程分配空间大小减去上一轮 GC 结束时线程分配空间大小就是线程本轮

    42150
    领券