正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。

. :匹配任意单个字符;

[]:匹配指定范围内的任意单个字符;

[^]:匹配指定范围外的任意单个字符;

*:匹配其前面的字符任意次;0,1,多次;

.*:匹配任意长度的任意字符

\?:匹配其前面的字符0次或1次;即其前面的字符是可有可无的;

\+:匹配其前面的字符1次或多次;即其面的字符要出现至少1次;

\{m\}:匹配其前面的字符m次;

\{m,n\}:匹配其前面的字符至少m次,至多n次;

\{0,n\}:至多n次

\{m,\}:至少m次

匹配次数:用在要指定其出现的次数的字符的后面,用于限制其前面字符出现的次数;默认工作于贪

婪模式;

 

位置锚定:

^:行首锚定;用于模式的最左侧;

$:行尾锚定;用于模式的最右侧;

^PATTERN$:用于PATTERN来匹配整行;

^$:空白行;

^[[:space:]]*$:空行或包含空白字符的行;

 

单词:非特殊字符组成的连续字符(字符串)都称为单词;

\< 或 \b:词首锚定,用于单词模式的左侧;

\> 或 \b:词尾锚定,用于单词模式的右侧;

\<PATTERN\>:匹配完整单词;

 

分组及引用

\(\):将一个或多个字符捆绑在一起,当作一个整体进行处理;

\(xy\)*ab

Note:分组括号中的模式匹配 到的内容会被正则表达式引擎自动记录于内部的变量中,这些变量

为:

\1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符;

\2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配到的字符;

\3

...


He loves his lover.

He likes his lover.

She likes her liker.

She loves her liker.


~]# grep "\(l..e\).*\1" lovers.txt


后向引用:引用前面的分组括号中的模式所匹配到的字符;

 

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

循环通过 python 正则表达式匹配

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串

攻破难啃的骨头-正则表达式(转)

正则表达式的贪婪和非贪婪模式