正则表达式简介
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Visual Studio 2015 C#
作者: 李杨
撰写时间:2019-05-20
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
正则表达式,又称为规则表达式。在代码里就是简写为regex 、regexp、RE,正则表达式通常被用来检索、替换那些符合某个规则的文本。
正则表达式呢是对字符串,包括普通字符,例如a到z之间的子母和特殊字符。特殊字符称为“元字符”。对字符串和特殊字符这些的操作的一种逻辑公式,就是用事先定义好的一些特定的字符,或者特定的字符串组合,组成一个规则的“规则字符串”。然后这个规则字符串用来表达对字符串的一种过滤逻辑。
正则表达式也是一种文本模式,这个模式描述的就是在搜索文本时要匹配的一个或者多个字符串。
而且这样来说的话,如果给定一个正则表达式和另外一个字符串,我们可以得到这些目的:
- 给定的字符串是否符合正则表达式的匹配
- 可以通过正则表达式,从字符串里面获得我们想要的部分。
然后下面是正则表达式元字符和它们的描述:
\ | 将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。 |
^ | 匹配输入字行首。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 |
$ | 匹配输入行尾。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。 |
* | 匹配前面的子表达式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。 |
+ | 匹配前面的子表达式一次或多次(大于等于1次)。 |
? | 匹配前面的子表达式零次或一次。 |
{n} | n是一个非负整数。匹配确定的n次。 |
{n,} | n是一个非负整数。至少匹配n次。 |
{n,m} | m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o为一组,后三个o为一组。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。 |
? | 当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少地匹配所搜索的字符串,而默认的贪婪模式则尽可能多地匹配所搜索的字符串。例如,对于字符串“oooo”,“o+”将尽可能多地匹配“o”,得到结果[“oooo”],而“o+?”将尽可能少地匹配“o”,得到结果 ['o', 'o', 'o', 'o'] |
.点 | 匹配除“\n”和"\r"之外的任何单个字符。要匹配包括“\n”和"\r"在内的任何字符, |
[^x | 负值字符集合。匹配未包含的任意字符。 |
[^a | 负值字符范围。匹配任何不在指定范围内的任意字符。 |
\b | 匹配一个单词的边界,也就是指单词和空格间的位置(即正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里的\b就是匹配位置的)。 |
\B | 匹配非单词边界。 |
\d | 匹配一个数字字符。 |
\D | 匹配一个非数字字符。 |
\f | 匹配一个换页符。 |
\n | 匹配一个换行符。 |
\r | 匹配一个回车符。 |
\s | 匹配任何不可见字符, |
\S | 匹配任何可见字符。 |
\t | 匹配一个制表符。 |
\v | 匹配一个垂直制表符。 |
\w | 匹配包括下划线的任何单词字符。 |
\W | 匹配任何非单词字符。 |
这只是元字符的一部分,还有很多就不一一列出来啦!