【壳基础】02,正则表达式


<强>

<强>

<强> ,,,这两个符号往往和[]一


,,


<强>

<强>

,一位叫斯蒂芬·克林的数学家在麦克洛克和皮特早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。

,,

<强>

(Perl兼容的正则表达式),“\ d”、“\ w”,“\ s”之类的记法,就是这个流派的特征。但是在PCRE之外,正则表达式还有其它流派,比如下面要介绍的POSIX规范的正则表达式。



<强>

<强>


<强>

,


<强>

<强> <强>

元字符描述美元。如果设置了正则表达式对象的多行属性,则美元也匹配“\ n”或“\ r”。要匹配字美元符本身,请使用\美元。()分组。子表达式可以获取供以后使用。要匹配这些字符,请使用\(和\)。*。要匹配*字符,请使用\ *。+。要匹配+字符,请使用\ + . .。要匹配。,请使用\。[。要匹配(,请使用\ [。字符,请使用\ ?\。例如,“n”匹配字符' n '。' \ n '匹配换行符。序列“\ \”匹配“\”,而“\(”则匹配”(“^,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配^字符本身,请使用\ ^{。要匹配{,请使用\ {。|

<强>:,

,

不包括空白行

\ S:匹配任何非空白字符,



<强>

<强>

。有*或+或?或{n}或{n}或{n, m}共6种。

字符描述*匹配前面的子表达式零次或多次。例如,佐薇*能匹配以“z”及“动物园”。*等价于{0}。+匹配前面的子表达式一次或多次。例如,“佐薇+”能匹配以“佐薇”及“动物园”,但不能匹配“z”。+等价于{1,}。匹配前面的子表达式零次或一次,例如,“(es)吗?”可以匹配“”或“”中的“做”。等价于{0,1},{n} n是一个非负整数。匹配确定的n次,例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“食物”中的两个o。{n} n是一个非负整数。至少匹配n次,例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。”o{1,}’等价于' o + '。' o{0}则等价于o *。{n, m} m和n均为非负整数,其中n & lt;=m。最少匹配n次且最多匹配m次,例如,“o{1,3}”将匹配中“fooooood”的前三个o。”o{0,1}’等价于”啊?”。请注意在逗号和两个数之间不能有空格。


<强>

字符描述^匹配输入字符串开始的位置。如果设置了正则表达式对象的多行属性,^还会与r \ n或\之后的位置匹配。美元匹配输入字符串结尾的位置。如果设置了正则表达式对象的多行属性,美元还会与r \ n或\之前的位置匹配。\ b或者\ & lt;, \祝辞匹配一个字边界,即字与空格间的位置,\ b非字边界匹配。



【壳基础】02,正则表达式