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

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

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

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

    【Python正则表达式】:文本解析模式匹配

    然后定义了一个字符串 string,需要在其中查找正则表达式匹配的子串。最后使用 re.match() 函数在字符串开头查找符合正则表达式规则的子串,并返回一个 Match 对象。...# re.search() 是 Python 中 re 模块提供的一个函数,用于在字符串中搜索正则表达式匹配的子串,并返回一个 Match 对象。...、制表符、换行符等) hello\sworld 可以匹配 “hello world” 等包含空白符的字符串 \S 匹配任意非空白字符 hello\Sworld 可以匹配 “hello,world” 等包含空白符的字符串...$” 等包含字母、数字和下划线的字符串 import re # 使用 \d 匹配数字字符 string = "abc123" pattern = r"\d+" match_object = re.search...match_object = re.findall(pattern, string) print(match_object) # 输出结果为 ["hello", "world"] 4.技巧 4-1 贪婪非贪婪

    19110

    linux下sed正则表达式匹配批量替换文件中的内容

    sed命令介绍 sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响。...接下来主要介绍替换功能 替换的使用 命令 说明 g 表示行内全面替换 p 表示打印行 w 表示把行写入一个文件 x 表示互换模板块中的文本和缓冲区中的文本 y 表示把一个字符翻译为另外的字符(但是不用于正则表达式...) \1 子串匹配标记 & 已匹配字符串标记 当然要使用其功能需要对正则表达式有一定了解。...替换hello成world,并打印到屏幕上 sed 's/hello/world/' hello.txt s 表示替换 hello 表示匹配的字母,是正则表达式 world 表示需要替换成的字母...值得注意的是,如果想要回写到文件中(和-i连用),不要只打印当前匹配航,否者只会保存当前匹配行,其他的丢失。

    5.9K10

    linux shell:提取正则表达式捕获组(catch group)匹配的字符串

    bash 目前大部分shell(如bash)都提供了正则表达式判断操作符=~,如下就可以对一个字符符判断是否匹配正则表达式: $ [[ "hello world" =~ wor(ld)?...]] && echo match matched 其实基于上面的表达式不仅可以判断是否匹配正则表达,还可以通过上面表达式创建的变量 BASH_REGEX(数组)提取捕获组(catch group),...0(全部字符串) {BASH_REMATCH[1]} 即正则表达式的捕获组1,以此类推 BASH_REGEX 是 bash定义的保存正则表达式捕获组的变量,不同的脚本解释有不同的定义,比如zsh,ksh...就有另外的变量定义方式 ksh 保存正则表达匹配数据的数组变量名叫 .sh.match ,对BASH_REMATCH,引用时必须以${.sh.match}方式引用 {.sh.match[0]} 即正则表达式的捕获组...0(全部字符串) {.sh.match[1]} 即正则表达式的捕获组1,以此类推 zsh MATCH 保存匹配的整个字符串,对应就是bash的BASH_REMATCH[0] match保存捕获组数据的数组

    4.6K10

    linux基本命令集锦

    Find查找命令 find   -name “*.txt”  说明:查找当前目录以及子目录所有txt文件,但是要进行区分大小写需要将name改成iname find   /home  -name...Grep在输入中查找字符串 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。...用法:Grep [options] 参数:[options]主要参数: -c:只输出匹配行的计数。 -I:区分大小写(只适用于单字符)。 -h:查询多文件时不显示文件名。...-l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示包含匹配文本的所有行。...pattern正则表达式主要参数: \:忽略正则表达式中特殊字符的原有含义。 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行。 \<:从匹配正则表达式的行开始。

    93771

    面试中和工作中常用的linux命令

    -i:区分大小写   -h:查询多文件时不显示文件名。   -l:查询多文件时只输出包含匹配字符的文件名。   -n:显示匹配行及行号。   -s:不显示不存在或无匹配文本的错误信息。   ...-v:显示包含匹配文本的所有行。  pattern正则表达式主要参数:   \: 忽略正则表达式中特殊字符的原有含义。   ^:匹配正则表达式的开始行。   $: 匹配正则表达式的结束行。   ...\<:从匹配正则表达 式的行开始。   \>:到匹配正则表达式的行结束。   [ ]:单个字符,如[A]即A符合要求 。   [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。   ....sz命令 在linux之间传输文件使用scp就行了 如果是在windows下使用xshell控制linux时: 上传文件直接到那个目录,然后把文件拖进去就可以 从linux下载文件时, sz test.txt...------------------- 符号链接的源可以是目录或文件 硬链接一般只能是文件 ------------------------------- 硬链接:可以看做一个指针,指向源文件.硬链接源文件是一个文件

    39610

    Linux中利用grep命令如何检索文件内容详解

    可以使用参数-n 命令格式: grep -n “被查找的字符串” *.log 4、检索时需要忽略大小写问题,可以使用参数“-i” 命令格式: grep -i “被查找的字符串” *.log 5、从文件内容查找匹配指定字符串的行..."v$temp_space_header" /u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1 | uniq 9、获取整个搜索字符匹配的内容...命令格式:grep –w “被查找的字符串” 文件名 10、grep命令find 命令的结合,实现联合检索 命令格式:find ....Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。...所以简单点说说,grep是查找匹配条件的行,find是搜索匹配条件的文件 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对

    4.6K41

    Linux里如何查找文件内容

    Linux查找文件内容的常用命令方法。  ...从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名 例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件 grep "thermcontact" */*.in...从文件内容查找正则表达式匹配的行: $ grep –e “正则表达式” 文件名 查找时区分大小写: $ grep –i "被查找的字符串" 文件名 查找匹配的行数: $ grep -c "被查找的字符串..." 文件名 从文件内容查找匹配指定字符串的行: $ grep –v "被查找的字符串" 文件名 从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行 find / -type...f -name "*.log" | xargs grep "ERROR" 例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行 find .

    4.7K30

    Linux里如何查找文件内容

    Linux查找文件内容的常用命令方法。  ...从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名 例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件 grep "thermcontact" */*.in 从文件内容查找正则表达式匹配的行...: $ grep –e “正则表达式” 文件名 查找时区分大小写: $ grep –i "被查找的字符串" 文件名 查找匹配的行数: $ grep -c "被查找的字符串" 文件名 从文件内容查找匹配指定字符串的行...: $ grep –v "被查找的字符串" 文件名 从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行 find / -type f -name "*.log" | xargs...grep "ERROR" 例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行 find .

    7.9K40

    Shell四剑客实操案例

    匹配行到x号行之间的行;x,/pattern/ #从x号行到pattern的匹配行之间的行;x,y!...AWK基本原理是逐行处理文件中的数据,查找命令行中所给定内容相匹配的模式,如果发现匹配内容,则进行下一个编程步骤,如果找不到匹配内容,则 继续处理下一行。...,很多读者容易把彼此搞混淆,通配符主要用在Linux的Shell命令中,常用于文件或者文件名称的操作,而正则表达式用于文本内容中的字符串搜索和替换,常用在AWK、GREP、SED、VIM工具中对文本的操作...匹配任意一个字符;# 表示注解;| 管道符号;;多个命令连续执行; 正则表达式详解: * 前一个字符匹配0次或多次;....匹配除中括号以外的任意一个字符; 常用GREP工具企业演练案列: grep -c “test” jfedu.txt 统计test字符总行数;grep -i “TEST” jfedu.txt 区分大小写查找

    2.1K21
    领券