正则 表达式

grep :   Global search REgular expression and Printout the line.

文本搜索工具。根据用户指定的文本模式(正则表达式元字符及正常字符组合而成)对目标文件进行逐行搜索,显示能匹配到的行。

grep 命令:

grep [OPTIONS] PATTERN [FILE...]

--color[=WHEN](输出是把匹配到的字符是否标记)

参数如下:

auto

always

never

-o 显示被匹配到的内容(特定环境需要)

例如:使用echo命令输出一个绝对路径,使用grep 取出基名。

[[email protected] /]# echo /etc/rc.d/init.d/functions | grep -o -E "[[:alnum:]]+/?$"

functions

-i ignore(忽略) 不区分字符大小写。(适用于单字符)

-v   不能被模式匹配到的(反向选取)

-E 使用扩展的正则表达式

-A

-B

-C

正则表达式(REGEXP):元字符和正常字符所书写的模式。

基本正则表达式:(grep)

扩展的正则表达式:(egrep)

元字符的功能:表达控制或统一匹配。

元字符匹配:

.   匹配任意单个字符。(个数为一个)

[]  指定范围内的单个字符。

[^] 指定范围外的单个字符。

[[:digit:]]   数字  ([:digit:]=[0-9])

[[:lower:]][[:upper:]]  小,大    写字母

[[:space:]]  空白字符

[[:punct:]]  标点符号

[[:alnum:]]  所有的字母(包括大小写)和数字

[[:alpha:]]  所有字符(包括大小写)

[[::]]这里的 :: 需要特特别注意,别打错了。不然命令行解释不了。

次数匹配:

* 任意长度(0-无穷次)

.*  组合表示任意长度任意字符

\?  匹配前面字符0-1次;

\+  1次或多次

\{m\} m次

\{m,n\} 至少m次,至多n次

\{0,n\} 至多n次

\{m,\} 至少m次

位置锚定(出现的位置):

^   行首

$   行尾

^$   连用可以匹配整行。

\<   \b 匹配块首(字符串不包括空格字符)

\>   \b 匹配块尾

\< \>  \b \b  整块匹配

例子:ifconfig 命令后,匹配出现一次或两次的数字 

分组:\(\)

注意:分组中的模式,在某次的具体匹配过程中的所匹配的字符,可以被grep 记忆(保存于内置的变量中),还可以被引用。

\1:引用,模式中自左而右,由第一个左括号以及与之对应的右括号中的模式所匹配到的内容。

\2:引用,模式中自左而右,由第二个左括号以及与之对应的右括号中的模式所匹配到的内容。

扩展的正则表达式:(表现形式不同,意义都一样。只是有些不用 \ )

字符匹配:

.   匹配任意单个字符。(个数为一个)

[]  指定范围内的单个字符。

[^] 指定范围外的单个字符。

[[:digit:]]   数字  ([:digit:]=[0-9])

[[:lower:]][[:upper:]]  小,大    写字母

[[:space:]]  空白字符

[[:punct:]]  标点符号

[[:alnum:]]  所有的字母(包括大小写)和数字

[[:alpha:]]  所有字符(包括大小写)

次数匹配:

* 任意长度(0-无穷次)

?  匹配前面字符0-1次;

+  1次或多次

{m} m次

{m,n} 至少m次,至多n次

{0,n} 至多n次

{m,}    至少m次

位置锚定(出现的位置):

^

$

\<  \b    (唯一grep 和egrep  用\ 没变的)

\>  \b    (唯一grep 和egrep  用\ 没变的)

分组:

()

引用:\1,\2,.....

或者:

a|b

例子:找出ifconfig命令结果中的1-255之间的数字。

[[email protected] /]# ifconfig | grep -E "\b([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]|25[0-5])\b"

eth0      Link encap:Ethernet  HWaddr 00:0C:29:79:E3:14

inet addr:172.16.249.71  Bcast:172.16.255.255  Mask:255.255.0.0

inet6 addr: fe80::20c:29ff:fe79:e314/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX bytes:7696098 (7.3 MiB)  TX bytes:1477862 (1.4 MiB)

inet addr:127.0.0.1  Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING  MTU:65536  Metric:1

时间: 2024-08-24 06:32:44

正则 表达式的相关文章

正则 表达式(替换)// 引用

replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串..为了帮助大家更好的理解,下面举个简单例子说明一下 Js代码 1. <script language="javascript"> 2. var stringObj="终古人民共和国,终古人民&q

正则 表达式速查表

脚本之家首页正则表达式速查表 正则表达式30分钟入门教程 | 常用正则表达式 | 正则表达式测试工具 | 正则表达式 | 正则练习器在线版 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符.例如,“n"匹配字符"n"."\n"匹配一个换行符.串行"\\"匹配"\"而"\("则匹配"(". ^ 匹配输入字符串的开始位置.如果设置了

php 常用 正则 表达式 匹配 符号 解释

常用正则表达式全部符号解释 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 向后引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'\n' 匹配一个换行符.序列 '\\' 匹配 "\" 而 "\(" 则匹配 "(". ^ 匹配输入字符串的开始位置.如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置. $ 匹配输入字符串的结束位置.如果设置了

Python_Example_常用正则&amp;&amp;表达式符号

Author: 楚格 IDE: Pycharm2018.02   Python 3.7 KeyWord :  RE Explain: 思路: 1------------------------------------------------------------------------------------------------------------------ 1 '.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 2 '^' 匹配字符开头

非负数 正则 表达式 js jquery

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:18px;">在硝烟的时候经常会用到这种需求:</span></span> <span style="font-family: Arial, Helvetica, san

python-day6-正则表达式

定义 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行. 二元字符 .   ^   $   *   +   ?   { }   [ ]   |   ( ) \ 实例 + 匹配+号前内容1次至无限次? 匹配?号前内容0次到1次{m} 匹配前面的内容m次{m,n} 匹配前面的内容m到n次*?,+?,??,{m,n}?    前面的*,+,?

day6 反射,hashlib模块,正则匹配,冒泡,选择,插入排序

一.反射(自省) 首先通过一个例子来看一下本文中可能用到的对象和相关概念. import sys # 模块,sys指向这个模块对象import inspectdef foo(): pass # 函数,foo指向这个函数对象 class Cat(object): # 类,Cat指向这个类对象 def __init__(self, name='kitty'): self.name = name def sayHi(self): # 实例方法,sayHi指向这个方法对象,使用类或实例.sayHi访问

js 验证正则

字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*". ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a&quo

正则表达式30分钟入门教程(正则小白的圣经)

本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它. 如何使用本教程 最重要的是——请给我30分钟,如果你没有使用正 则表达式的经验,请不要试图在30秒内入门——除非你是超人 :) 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难.当然, 如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达 式的人在看完这篇教程后,能把提到过的语法记住8