Linux正则表达式-单词

也许你已经发现,有时匹配完整的单词很难。例如,如果想匹配模式"book",搜索会命中包含单词"book"和"books"的行,而且还有单词"bookish"、"handbook"和"booky"。很显然可以在"book"前后使用空格来限制匹配情况。

□book□

然而,这个表达式只匹配单词"book",它会丢掉它的复数形式"books" 。为了匹配单数或复数单词,可能要使用星号元字符:

□books*□

这样就可以匹配"book" 或"books" 。然而,如果单词后面有句点、逗号、问好或引号时就不会匹配"book" 。

当将星号和通配符元字符(.)结合起来使用时,可以匹配任意字符的零次或多次出现。在前面的示例中,可以像下面这样编写比较完整的正则表达式:

□book.*□

这个表达式匹配字符串"book" ,其后面跟有任意个字符或没有字符,最后跟着空格。下面是将要匹配的几行:

Here are the books that you requested

Yes, it is a good book for children

It is amazing to think that it was called a "harmful book" when

once you get to the end of the book, you can‘t believe

(注意只有第二行可以和固定字符串"□book□"匹配。)表达式"□book.*□"匹配包含类似与单词"booky" 、"bookworm" 和"bookish"的行。通过使用不同的修饰符可以排除这些匹配中的两种。问号(?)是元字符的扩展集的一部分,匹配前面表达式的0次或1次出现。因此,表达式:

□book.?□

将与"book,"、"books, "和"booky"匹配,而不与"bookish" 和"bookworm" 匹配。为了排除类似"booky"这样的单词,我们可以使用字符类来指定想要匹配的位置的所有字符。而且,因为元字符问号在sed中不可用,我们必须求助于字符类,这些在后面将会看到。

尝试用正则表达式包括一切并不实际,尤其是在使用grep时,有时最好使表达式保持简单并允许遗漏。然而,当在sed中使用正则表达式进行替换时,就需要注意的是使用的表达式应该完整。在本站之后的文章中我们将会看到用于搜索单词更全面的正则表达式。

参考资料:http://www.linuxawk.com/communication/434.html

时间: 2024-12-27 15:19:42

Linux正则表达式-单词的相关文章

Linux 正则表达式

Linux 正则表达式(*****) 1.什么是正则表达式? 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法 通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串. Linux 正则表达式一般以行为单位处理的. 注意事项: a.#alias grep='grep --color=auto'  ===>以特定颜色高亮显示匹配关键字 b.注意字符集,LC_ALL=C   #export LC_ALL=C 实战举例: 1)^ word  搜索以 word 开

Linux正则表达式grep与egrep

Linux正则表达式grep与egrep 正则表达式:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容.其实正则表达式,只是一种思想,一种表示方法.只要我们使用的工具支持表示这种思想那么这个工具就可以处理正则表达式的字符串.常用的工具有grep, sed, awk,这三个都是针对文本的行才操作的. grep  过滤器语法: grep  [-cinvABC]  'word'  filenam

  linux正则表达式解析

Linux 正则表达式解析 一.Linux文本搜索工具 Linux的文本搜索工具主要有grep,egrep,fgrep.其中grep支持基本和扩展的正则表达式的搜索.egrep支持扩展的正则表达式.fgrep不支持正则表达式的搜索,但是它的搜索速度比较快.这里我们具体探讨一下grep和egrep使用方法. 1.1grep用法 grep [OPTIONS] PATTERN [FILE...] --color={never,auto,always}:是否对搜索到字符串做颜色处理. -o :只显示被模

菜鸟的成长记录--linux正则表达式及grep

正则表达式 是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 元字符:不表示其字面意义,而用于额外功能性描述,下面是常用的元字符列表 符号 含义 . 表示匹配任意单个字符,例a.,匹配ab.ac.ad.ax * 表示它前面的字符可以出现任意次,例a*b,匹配aab.b.ab \? 表示它前面的字符可有可无,例a\?b,匹配a

linux正则表达式的使用

正则表达式的使用 1.1 创建环境 cat >q.txt<<EOF oldboy  oldboy hellooldboy hellooldboy awkoldboy  awkoldboy sedoldboy sedoldboy oldboyedu oldboyedu EOF 取出只有oldboy的行 grep "\boldboy\b" q.txt 实例1-1反向引用 [[email protected]~]# #####第一个里程碑-反向引用(先保护起来,然后使用)

linux正则表达式之-基础正则表达式(基于grep)

linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或输出需要的字符. 使用正则表达式注意事项: 1.linux正则一般是以行为单位处理的. 2.alias grep='grep --color=auto',讲课是以grep为例.(注意:为了使下面的案例更加清晰明了,在做下面的案例前请先执行此行命令) 3.注意字符集,LC_ALL=C linux里正则

关于清晰讲解linux正则表达式的博文分享

http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html  linux shell 正则表达式(BREs,EREs,PREs)差异比较 http://www.360doc.com/content/11/0304/11/5912935_98007617.shtml  正则表达式练习 http://www.jb51.net/article/42989.htm  Linux 正则表达式详解 http://www.sjhf.net/bl

NO22 Linux正则表达式

Linux正则表达式: 原文地址:https://www.cnblogs.com/sinsenliu/p/9029383.html

Linux正则表达式结合三剑客实例

Linux正则表达式结合三剑客实例 案例一:取 ifconfig eth0 中的 inet addr 的 ip法一:ifconfig eth0|sed -n '2p'|sed -n 's#^.dr:##gp'|sed -n 's# B.$##gp'法二:ifconfig eth0|sed -n'2s#^.dr:##gp'|sed -n 's# B.$##gp'法三(后向引用):ifconfig eth0|sed -nr '2s#^.dr:(.) B.*$#\1#gp'练习法三:需要注意 sed: